Stratego -- Strategies for Program Transformation


CX is an aterm bridge for CIL, an existing C front-end implement in OCaml. The Stratego/XT-based package CX uses this bridge to read C code. CX will become a full set of tools for combining CIL and Stratego for the implementation of C transformations and analysis. The main difference with other Stratego/XT projects that provide support for C (Transformers) is that this uses an existing C front-end and not an SDF-based parser. The advantage is that you get the solid support of the existing frontend. CIL supports some C dialects as well. The disadvantage is that there is no grammar from which you can derive useful things for use with Stratego/XT.


  • C to ATerm bridge based on CIL
  • Pretty-printer from CIL to C


Latest Developments

Distributions (tarball, rpm, srpm) of the head revision are created continuously:

The distributions contain the latest of the latest developments, but if you really want to, the latest sources can be checked out using:

  svn checkout
Before you can configure the package as described above you have to run the ./bootstrap script.


Install the package with the usual sequence of commands:

$ ./configure
$ make
$ make install

You might need to set your PKG_CONFIG_PATH if you did not install the dependencies in a standard location. Configure will tell you to do this if it cannot find aterm, sdf or strategoxt.

Project Info

Issue Tracking

We use JIRA to keep track of issues. Please report any issues that you encounter!

Contact and Mailing List

Please send questions to the mailing list. Also, the CX developers are usually available on IRC at Feel free to drop by!

Source Repository

The sources of CX are available from Subversion.



  • Mart Kolthof


CX is GPL (GNU General Public License) software.

Related Software