Tiger Contract
Stratego -- Strategies for Program Transformation
Introduction
TigerContract is an experimental package which implements a
TigerCompiler with contract support. The main
purpose is to understand what contracts are and how to implements the checking and enforcing of these contracts
in Stratego.
First target is to implement support structural contracts for rewriting (compiler) components. A next step may
be to implement semantic contracts; but this support will be limited, probably by implementing your own checker
component.
Resources
- tiger : Tiger in Stratego
- stratego-regular : Optional Stratego library providing Regular Hedge/Tree Grammar support
- XTC : Transformation Tool Composition
Download and installation
The current source of
TigerContract can be checked out using:
svn checkout https://svn.strategoxt.org/repos/StrategoXT/trunk/experimental/tiger-contract
There will never be a distribution, since contract support will eventually be implemented
in a new version of the
XTC library as part of my thesis work. Thus,
making this package obsolete.
Configuration
Configure the package:
-
--with-xt
or if the packages are installed at different locations:
-
--with-aterm
-
--with-sdf
-
--with-strategoxt
-
--with-tiger
Known Bugs
List of Bugs will hopefully never appear here
TODO
- Contract support
- Extend the existing TigerCompiler (tiger/xtc/tigerc.str) to
support the notion of contracts - done
- Refactor to library for contract support
- Create helper library for contract support - done
- Incorporate this library into thesis project
- Use the new XTC library (with contract support) to add contracts to other packages like XWeb
--
NielsJanssen - 11 Dec 2003