Stratego -- Strategies for Program Transformation

Note that Stratego is now part of the Spoofax Language Workbench, which provides an Eclipse plugin for developing SDF and Stratego, and creating Eclipse IDE plugins for your own language. See the Spoofax website for information and downloads: The documentation listed here is based on the Stratego/XT toolkit targeted at batch program transformation systems. The information about the Stratego and SDF languages is still applicable in the setting of Spoofax, but Spoofax may require some different idioms.

Stratego is a language for program transformation and XT is a collection of tools for building and generating program transformation components. Important components of the tool collection are the ATerm exchange format and the syntax definition formalism SDF. Together these ingredients provide a very powerful toolbox for constructing program transformation systems.

However, they are tools that need to be applied in construction, not a ready made environment that magically solves your particular transformation problem. The system is not restricted to a single trick, nor is there a single way to solve a problem using these tools. To learn to use these tools you'll need to invest some effort in learning the concepts and architecture of Stratego/XT.

Note: This documentation here is kept in sync with the latest integration build. If you are looking for documentation for an older, stable release of Stratego, consult the corresponding release page of your version (bottom of that page).

Some documentation is not up to date or has been subsumed within the previously mentioned documents. See obsolete documentation.