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