News
2009-12-30
A bibliograpy with Stratego/XT related publications is now available from
researchr
2009-07-27
Following the
Stratego/XT 0.17 release, we have released some minor updates on some
extension packages.
2009-07-08
Stratego/XT 0.17 has been released. This release introduces major improvements across the board, including language additions, a new compiler library, numerous improvements to the compiler, significant changes to the library handling, new libraries for parsing, pretty printing and term validation, 64-bit support, stack traces and more.
2009-04-06
Postdoc position available in the
MoDSE project.
2008-12-12
The paper
Decorated Attribute Grammars by Lennart Kats, Tony Sloane and Eelco Visser has been accepted for presentation at the
International Conference on Compiler Construction (CC 2009) to be held in March 2009 in York (UK). The paper introduces
Aster, an extension of Stratego with reference attribute grammars and attribute traversals based on Stratego's traversal operators.
2008-03-31
The paper
"
Code Generation by Model Transformation. A Case Study in Transformation Modularity"
by Zef Hemel, Lennart Kats, and Eelco Visser
has been accepted for presentation at the
International Conference on Model Transformation (ICMT'08)
2008-02-15
The Stratego/XT site has been moved to a server at Delft University. The
strategoxt.org domain is now the canonical domain for the website. The old
www.stratego-language.org domain is forwarded there and will remain available.
2008-01-08
stratego-language.org is back online after absence for a day, while the DNS server for the domain was changed. This is in preparation for a migration to a new server at Delft University of Technology, where the site will be hosted in the future. The site will also be converted to a new wiki implementation in
WebDSL.
2007-12-20
First release of
WebDSL at
webdsl.org.
Events
2009-06-16
Code Generation 2009 tutorial on
Creating Domain-Specific Languages with Stratego/XT.
Stratego/XT is a language and toolset for
program transformation.
The
Stratego language provides rewrite rules for expressing basic transformations, programmable
rewriting strategies for controlling the application of rules, concrete syntax for expressing the patterns of rules in the syntax of the object language, and dynamic rewrite rules for expressing context-sensitive transformations, thus supporting the development of transformation components at a high level of abstraction.
The XT toolset offers a collection of extensible, reusable transformation tools, such as powerful parser and pretty-printer generators and grammar engineering tools. Stratego/XT supports the development of program transformation infrastructure, domain-specific languages, compilers, program generators, and a wide range of meta-programming tasks.
Latest Developments
2008-05-24
Stack traces on "rewriting failed"
Since late March, the Stratego compiler and auxiliary libraries have
supported stack traces upon rewriting failed. The following trace is
taken from a typical
XTC component that uses
io-wrap:
./prog: rewriting failed, trace:
main_0_0
io_wrap_1_0
option_wrap_5_0
lifted144
input_1_0
lifted145
output_1_0
lifted0
my_wrap_1_0
foo_0_0
bar_0_0
zap_0_0
More details may be found in
two
posts to our planet.
2008-04-24
New URLs for Subversion, Releases, and Bug-tracking
All the Stratego/XT development tools have been moved to subdomains of
strategoxt.org. An overview:
Thanks to Eelco Dolstra for doing most of this work!
2007-04-26
Global Variables
Stratego now supports
scoped global variables. In the context of a dynamic rules section one
can now write
rules( Foo := <compute> )
which abbreviates the following commonly used programming pattern:
x := <compute>
; rules( Foo : _ -> x )
The value bound in the assignment can be retrieved by the application <Foo>.
The usual scoping features of dynamic rules apply to global variable as well.
For more information see this
blog.
2007-04-03
AspectJ-front revived, support for Microsoft Windows
The
AspectJ-front package has been updated to be easier to install and be more portable. The AspectJ syntax definition of AspectJ-front heavily exercises the
SDF parser generator, which used to make it rather difficult to install the package on machines with a limited amount of memory. The new packages includes the compiled parse tables and also the package is more portable, including support for native Microsoft Windows! The package now also provides a library (DLL on Microsoft Windows) for parsing and pretty-printing AspectJ source files.
2007-03-01
x86-64 support for Stratego/XT!
Stratego/XT supports x86-64 processors (in 64-bit mode) from release
0.17M3pre16744 (
or later), the sdf2-bundle from release
2.4pre212034 (
or later). The preliminary releases are available from our new
Nix buildfarm at the TU Delft. The x86-64 support is based on a branch of the ATerm library developed by Eelco Dolstra and Erik Scheffers, and some new 64-bit patches for the sdf2-bundle. The x86-64 bit requirements are completely hidden in the ATerm library and the Auto/XT build system, thus packages based on Stratego/XT should support x86-64 machines out of the box if they do not contain custom native C code. The preliminary releases with 64-bit support will soon be used in the Stratego/XT packages
integration build, which currently still refers to the
Nix Buildfarm at Utrecht University. More information about the issues and the specific patches required for x86-64 support is available in a
post at
Subject to Meta Programming.
2007-01-18
Stratego/XT Packages Channel
The Stratego/XT packages channel now provides
integration builds for Stratego/XT, its dependencies, and packages based on Stratego/XT. We have created this channel after frequent questions about which packages work together. From now on, this is the way to install the latest developments of Stratego/XT. If you install packages from this channel, then they are guaranteed to work together. If your favorite Stratego/XT package is currently not on the channel, just send us a request. If the package is maintained and in reasonable use, then we will add it to the channel.