TOC Introduction AspectJ-front provides: Modular syntax definition for AspectJ 5.0 in SDF. The AspectJ syntax definition is an extension of the modular syntax definition ...
Transform.JoostVisser and I have looked at a breadth first for Tools.JJTraveler . The breadth first in the Stratego library is incorrect: It doesn't apply s to the ...
TOC Introduction 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 ...
This page lists ideas for improvement of the StrategoCompiler. Please add ideas and bug reports to the appropriate sub-topic. ImplementationScheme StrategoOptimization ...
Terms are constructed dynamically, even when they are are constant at compile time. Constant term caching is a transformation that lifts out constant terms and constructs ...
TOC Description A contextual rule is a rule in which the left-hand side and right-hand side terms contain contexts of the form x t . A typical example of a contextual ...
The EvaluationOrder of the alternatives of the NonDeterministicChoice operator is not defined. The StrategoCompiler can decide in which order to try the alternatives ...
rules allow the run-time addition of rewrite rules. This can be used to model context-sensitive rewriting and has a host of applications in program transformation ...
TOC Features ECMAScript-front is a package you can use to generate or transform ECMAScript Edition 4 (also known as JavaScript) code. Download Stable Releases Currently ...
TOC Features The ECMAScript-model package is an executable model of the ECMAScript Edition 4 programming language. The source code represents a small-step operational ...
Effects analysis can further enhance the optimizations performed by the optimizer. The following questions should be answered by effects analysis: Does the strategy ...
Ideas for improving the error reporting of the StrategoCompiler. Feel free to add more ideas. check import graph: operators used in a module should be visible through ...
xDoc: generate documentation for Stratego specifications General Rob Vermaas is working at the moment on xDoc. Examples of generated documentation can be found at ...
final module/definition Marks a definition or all definitions in a module as final. This means that modules importing this definition cannot extend it. For separate ...
A tuple is a term of the form (t1,...,tn) . In pre- StrategoRelease07 versions of Stratego this was syntactic sugar for TCons(t1,...,TCons(tn,TNil)) . The idea behind ...
TOC Introduction The Stratego/XT Grammar Engineering Tools is a collection of tools for the recovery, development, testing, and maintenance of grammars. Currently ...
This is a to do list for creating a new release of StrategoXT. Make sure trunk is ok The trunk revision must build at all machines of the buildfarm, Cygwin and Mac ...
RED This manual is under construction! ENDCOLOR Table of Contents TOC Introduction Using a library At the command-line, or in Automake. Using strc at the command ...
Before StrategoRelease06 failure was implemented in the StrategoCompiler by using GCC's computed labels feature. Starting with StrategoRelease06 failure handling is ...
by Transform.ArneDeBruijn August 10, 2001 INF/SCR-01-11 Master thesis, Institute of Information and Computing Sciences, Universiteit Utrecht Abstract All modern compilers ...
Ideas for improving the implementation scheme of the StrategoCompiler. Feel free to add ideas. GlobalBacktracking ImplementationOfFailure variables on backtracking ...
An experimental fusion transformation for fusing the generic InnermostStrategy with the rules it is instantiated with was implemented in StrategoRelease05. The transformation ...
StrategoXT 0.10 Installation Instructions Download the required packages First of all download the required packages ( .tar.gz , RPMs or Source RPMs). You need aterm ...
StrategoXT 0.11 Installation Instructions Download the required packages First of all download the required packages ( .tar.gz , RPMs or Source RPMs). You need aterm ...
Download the required packages First of all download the required packages ( .tar.gz , RPMs or Source RPMs). The URLs are specified in the topic of the StrategoXT ...
Download the required packages First of all download the required packages ( .tar.gz , RPMs or Source RPMs). The URLs are specified in the topic of the StrategoXT ...
Download the required packages First of all download the required packages ( .tar.gz , RPMs or Source RPMs). You need aterm 2.0 and sdf2-bundle 1.6. The URLs are ...
Download the required packages First of all download the required packages ( .tar.gz , RPMs or Source RPMs). You need aterm 2.0.5 and sdf2-bundle 2.0.1 The URLs are ...
This page discusses common problems (or non-problems) with the installation of Stratego on certain platforms. ATerm Installation (for Stratego/XT 0.14 and earlier ...
The Stratego/XT packages integration build provides a heavily tested release of the latest version of Stratego/XT, its dependencies, and packages based on Stratego ...
Stratego is currently used to produce batch oriented transformation systems. For some applications (e.g., refactoring) it would be useful to have an environment in ...
TOC Features Java-front is a package you can use to generate or transform Java code. It contains a handcrafted SDF grammar for Java, signatures generated from this ...
TOC Introduction Jimple-front defines the syntax of Jimple, the typed 3-address representation of Java bytecode of the Soot Java optimization framework. This representation ...
Below is a list of ideas for improvements and extensions of the standard library. Feel free to add items to the list or even to start new topics. NewName BreadthFirstTraversal ...
In the ATerm representation lists are represented as terms of the form t1,...,tn . This is also the syntax for lists in Stratego; extended with the notation t1,.. ...
No WildCards should occur in Build's, or a wildcard could be interpreted as the identity strategy in a TermWrap interpretation. As patterns may only be used in matching ...
Naming conventions are important in any platform. If the naming conventions are followed in the library and by the developers of a project, you can remember the name ...
Abstracting over Term Patterns with Overlays Overlays are abstractions over term patterns that can be used just like ordinary term constructors. Overlays can be used ...
I thought I'd give you an brief update on my attempt to build a verification tool for P-logic, the logic for Haskell98 that we have developed in the Programatica ...
An optimizer for the Transform.PanLanguage was implemented in Stratego as part of a research on Transform.InliningStrategies. It performs the following optimizations ...
TOC Introduction Extensible Compilers. Many extensible compilers and programming languages allow the syntax of a base language to be extended to introduce new syntactic ...
After GPCE/OOPSLA in Vancouver Tijs van der Storm challenged me to write a Stratego program that prints its own source. So I set to work, with the following result ...
By representing a strategy as a term, it can be passed around. This requires an EvalStrategy operator that evaluates such a term. This need not be a primitive; Problems ...
Some/many rules can be used both ways. For example, in propositional logic we have A10 : Impl(x, y) Or(Not(x), y) A11 : Or(Not(x), y) Impl(x, y) It would be more ...
Traversal primitives should have a right-to-left variant. Make threadl variant of thread that threads from right to left Main.EelcoVisser 27 Oct 2001 CategoryToDo ...
A pragmatic approach to separate compilation has been introduced in StrategoRelease094. A module can be compiled as a library which results in a single C program containing ...
TOC Introduction SQL-front provides a syntax definition of a subset of SQL/92. You can use SQL-front to parse SQL. Download Latest Unstable Release The latest unstable ...
We have downloaded and are starting to look at and study some of the tools, in particular the Stratego tools and their CobolX couterpart. Good! We would also like ...
There are several DebuggingTechniques for debugging Stratego programs. More support from the StrategoCompiler could be useful sometimes. Tracing Since StrategoRelease062 ...
INCLUDE{WebNotice} There are many interesting and less interesting improvements that can be made to the Stratego implementation. Anyone who is interested in doing ...
The StrategoCompiler performs a number of transformations/optimizations including the following: Pattern match merging Symbol caching Simplification Desugaring The ...
Although the traversal strategy that is used can have great impact on the performance of Stratego programs, there is no mechanism (except for time measurements) to ...
Released July 16, 2004 Download See the installation instructions if you are not familiar with the standard installation procedure of tarballs or RPMs. Source tar ...
Released October 04, 2004 Download See the installation instructions if you are not familiar with the standard installation procedure of tarballs or RPMs. Source tar ...
Stratego/XT STRATEGOXTVERSION released August 31st, 2005 Download See the installation instructions if you are not familiar with the standard installation procedure ...
Stratego/XT 0.9 released on January 26, 2003 Contents TOC Download Source distribution StrategoXT is built using the ATermLibrary, the SDF syntax definition formalism ...
StrategoXT 0.9.4 StrategoXT 0.9.4 released January 22, 2004 Download See the installation instructions if you are not familiar with the standard installation procedure ...
Released March 26, 2004 Download See the installation instructions if you are not familiar with the standard installation procedure of tarballs or RPMs. Source tar ...
The semantics of the core of Stratego is described in BuildingProgramOptimizersWithRewritingStrategies and ACoreLanguageForRewriting. Since those papers were written ...
The syntax of StrategoLanguage used to be defined by a LEX/Transform.YetAnotherCompilerCompiler grammar. In order to make maintenance and extension of the syntax definition ...
This page lists ideas for programming utilties for Stratego programmers. StrategoDebug xDoc generate documentation for Stratego specifications Shell interactive ...
StrategoLanguage is designed for transformation of tree or term structures. Stratego has support for the definition of generic traversals over trees, which makes the ...
TOC Introduction StringBorg is a solution to injection attacks for arbitrary languages. StringBorg prevents injection attacks by embedding the syntax of guest languages ...
On May 3, 2002 the ThirdStrategoUsersDay was held at Utrecht University. During the day seven presentations about features or applications of Stratego were given. ...
TOC Introduction TigerContract is an experimental package which implements a TigerCompiler with contract support. The main purpose is to understand what contracts ...
Things to do are now tracked in our issue tracking system: Issues in our issue tracking system Old to do items There are many ways in which to improve and extend the ...
Currently Stratego is very weakly typed. The reason for the weak type system is that it is not clear how to combine strong typing with generic traversals and transformations ...
Allow some specification of a desugaring tool in a meta file to apply to concrete syntax Make it easier to add custom desugarings (use meta file?), maybe implement ...
See also the WebChanges page. STARTINCLUDE 2010-05-28 Version 0.5 of the Spoofax Language Workbench has been released. Read the announcement on the main page. 2010 ...
Statistics for TWiki.Stratego Web Month: Topic Views: Topic Saves: Attachment Uploads: Most Popular Topic Views: Top Contributors for Topic Save and Uploads: Apr ...
Useful twiki things to do are: Keep track of WebChanges Get a WebNotify of changes Check the WebStatistics Browse the WebIndex Do a WebSearch See the other Main.TWikiUsers ...
TOC Introduction XWeb is a generic template-based transformation demonstration service; it's implemented as a CGI application. The current version contains a demo ...
Some ideas for making advanced Stratego features more accessible to new users. Goals Easy to define a syntax for language X and implement a source-to-? or source-to ...