Stratego Shell 0.6

Stratego -- Strategies for Program Transformation

Released November 04, 2005


Stratego Shell 0.6 requires Stratego/XT 0.16 and the GNU Readline library.

Source tar.gz

Source RPM

Redhat Linux RPM

SuSE Linux RPM

Fedora Core RPM

Nix Package

One-click installation using Nix, open with /nix/bin/nix-install-package


This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.


This release features a major redesign of the Stratego Shell, where the interpreter is now completely separated from the interactive shell and compiled as a separate library, libstri. This library can easily be reused in other applications that need to interpret Stratego code. The Stratego Interpreter command-line tool, stri, is now completely separated from the interactive shell and has an interface that is comparable to strc.

Also, the Stratego Shell has been updated for the refactoring of the Stratego compiler in Stratego/XT 0.16, called strc-core. The interpreter evaluates a superset of the Stratego Core language, to limit the amount of time spent in the front-end of the compiler components, and to make the AST a bit closer to the original source. The source code of the shell has been modularized as well. The GNU readline bindings are now compiled in a separate library, so they can more easily be reused in different Stratego applications that need an interactive command-line.

The Stratego Shell now supports separately compiled libraries, but currently by default only for the Stratego Library. Loading arbitrary compiled libraries into the shell is future work. The Stratego Shell supports overloading of external definitions, but you'd better not use this feature, since it is not supported by the compiler.


  • Martin Bravenboer
  • Rob Vermaas
  • Nicolae Vintila

More Information