Stratego Application

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: This website is still available for historical purposes. Refer the new site for up-to-date documentation.

The Stratego language is being used in applications in various areas of program transformation. This page lists some examples. Feel free to create a page about your own Stratego application and link to it here.


Applets are small applications that are mainly written as illustrations of program transformation with strategies and are more accessible than real applications.

  • XtApplet: a template package for building applets with XT and Stratego
  • EBNF: several transformations on grammars in EBNF format


StrategoXT: a bundle of program transformation tools

Compilation by transformation

Program Synthesis

Program optimization

  • HSX: warm fusion transformation of functional programs
  • CodeBoost: domain-specific C++ transformations
  • HsOpt: transformation of Helium programs (subset of Haskell)
  • PanOptimizer : optimizer for domain-specific language for image manipulation

Documentation generation

Application generation

Software renovation

Software configuration

  • AutoBundle: creates software distribution bundles from package descriptions by analyzing depencencies between packages. The tool also generates a webpage from a collection of package descriptions and computes pictures of dependency graphs on demand. You can see AutoBundle at work in the online package base.

Theorem Proving

Dynamic website generation

  • xweb: Generic template-based transformation demonstration website
  • WebDSL: a domain-specific language for developing dynamic web applications with a rich data model.

Stratego.StrategoApplication moved from Stratego.StrategoApplications on 25 Jan 2002 - 09:33 by EelcoVisser - put it back