Web Index

Stratego -- Strategies for Program Transformation
Results from Stratego web
E. Visser and Z.-e.-A. Benaissa. A core language for rewriting. In C. Kirchner and H. Kirchner, editors, Second International Workshop on Rewriting Logic and its Applications ...
See ATerm Library at the Tools web.
An abstract syntax is a representation of a source code (or data in general) that is independent of the representation of the program in source code, called the syntax ...
Description An abstract syntax tree is a tree representation of a source program. It abstracts more from the source program than a parse tree. Usually it doesn't ...
B. Fischer and E. Visser. Adding concrete syntax to a Prolog-based program synthesis system (extended abstract). In M. Bruynooghe, editor, Preliminary proceedings ...
INCLUDE{WebNotice} TOC Editor Plugins for Stratego Spoofax Stratego Editor Plug-In for Eclipse The Spoofax Stratego Editor plug-in provides syntax-highlighting and ...
An algebraic signature describes the structure of a set of terms. A signature introduces one or more AlgebraicSorts , i.e., collections of terms. Sorts are inhabited ...
An rewrite rule is a rule that can be used inside a stategy expression. An anonymous rewrite rule of the form: \ p1 p2 where s \ is desugared to {x1, ..., xn : ?p1 ...
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 ...
AspectStratego is an extension to the Stratego language for dealing with cross-cutting, separate concerns. It may be downloaded from the build farm or SVN. It is planned ...
Aster is an attribute grammar system based on Stratego. It makes use of the standard Stratego facilities such as matching and syntax to specify attribute equations ...
AutoBayes is a program synthesis for the domain of statistical data analysis. Stratego/XT is used in combination with AutoBayes to (1) provide concrete syntax for ...
The autoxt package provides Autoconf and Automake support for packages constructed with the XT toolset. The package provides the autoxt tool which should be run as ...
The binding of a term variable does not coincide with its binding. That is, in the strategy expresssion {x : ... ; ?Foo(x) ; ... ; !Bar(x) } the variable x is first ...
Bibliographic format. See BibtexTools Main.EelcoVisser 22 Oct 2003
TOC Description The bibtex-tools package provides components for processing BibTeX files, mainly for producing publication lists in PDF and HTML automatically from ...
The released versions of BibtexTools are currently not available. You can check out the sources directly from https://svn.strategoxt.org/repos/StrategoXT/bibtex-tools ...
The bound-unbound-vars component of the optimizer annotates variables with one of the annotations "bound" , "unbound" , or "(un)bound" , with the following meanings ...
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 ...
The composition of a match and a build (in either order) can often be simplified. If the match following a build is incompatible, failure is certain. For example, ...
To add a job, you need to: 1 describe your package in packages.nix (e.g. fooFront ) 2 add a release to releases.nix (e.g. fooFrontUnstable ), referring to fooFront ...
Main.EelcoDolstra and Main.EelcoVisser. Building Interpreters With Rewriting Strategies In Transform.MarkVanDenBrand and Transform.RalfLaemmel (editors) Workshop on ...
E. Visser, Z.-e.-A. Benaissa, and A. Tolmach. Building program optimizers with rewriting strategies. In Proceedings of the third ACM SIGPLAN International Conference ...
The c-tools package contains: a SDF syntax definition, a Printer, and Signatures for the C language. Using c-tools you can generate C code with Syntax for the C language ...
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 ...
Success and failure in Stratego allows one to avoid computing with Boolean values all the time. However, sometimes it is necessary to capture the failure (or success ...
The category of categories. SEARCH{search "CategoryCategory" regex on format " $topic " nosearch "on"}
SEARCH{"CategoryCompiler" format " $topic " noheader "on" nosearch "on"} CategoryCategory
SEARCH{search "CategoryConcreteObjectSyntax" nosummary "on" scope "text" noheader "on" nosearch "on" nototal "on" format " $topic "} CategoryCategory
SEARCH{search "CategoryGlossary" nosummary "on" scope "text" noheader "on" nosearch "on" nototal "on" format " $topic "} CategoryCategory
SEARCH{search "CategoryInstallation" nosummary "on" scope "text" noheader "on" nosearch "on" nototal "on" format " $topic "} CategoryCategory
The Category of StrategoLanguage applications. Click on the title to get them all. Transform.CategoryCategory
A few months ago I proposed to introduce character literals in Stratego as syntactic sugar for the integer ASCII value of the character. I would like to raise this ...
Homepage: http://losser.st-lab.cs.uu.nl/~pretzel/ CobolX is a transformation system for Transform.COBOL developed by Main.HedzerWestra based on StrategoLanguage and ...
CodeBoost is a tool for source-to-source transformation and optimisation of C++ programs. It is intended to be used as a testbed for various high-level optimisations ...
CodeBoostI JanHeering TBDinesh CodeBoostII MagneHaveraaen OttoSkroveBagge EelcoVisser
The CodeBoost distribution is available for download at http://www.codeboost.org/ Main.OttoSkroveBagge 20 Jan 2002
CodeBoostI was the first CodeBoost prototype, implemented in ASF+SDF. It is described in a paper 1 by TBDinesh, MagneHaveraaen and JanHeering.
CodeBoostII is the second version of CodeBoost, described on these web pages. Its main advantage of CodeBoostI is that it performs SemanticAnalysis, allowing for more ...
The software for the Code Generation 2009 Tutorial is available through a virtual machine. To run this virtual machine you need a recent version of VirtualBox (version ...
Jonne van Wijngaarden, Code Generation from a Domain Specific Language. Designing and Implementing Complex Program Transformations MSc Thesis INF/SCR-03-29, Institute ...
This page will contain information for the participants in the Code Generation 2009 Hands-On Stratego/XT tutorial. Main.EelcoVisser 18 May 2009
Layout and naming conventions for the language Guidelines how to layout your Stratego code Conventions how to chose names for strategies, rules, variables and modules ...
Karl Trygve Kalleberg and Eelco Visser. Combining Aspect-Oriented and Strategic Programming . RULE 2005. In H. Cirstea and N. Martí-Oliet, editors, Proceedings of ...
and copy propagation performs a forward propagation of known term expressions. This may result in multiple of (parts of) the same term. A common-subexpression elimination ...
This page lists ideas for improvement of the StrategoCompiler. Please add ideas and bug reports to the appropriate sub-topic. ImplementationScheme StrategoOptimization ...
http://www.cs.uu.nl/~visser/pictures/portland-computer-22-04-1998.jpg Transform.ZinoBenaissa and Transform.EelcoVisser working on first StrategoCompiler at the Oregon ...
K. Olmos and E. Visser. Composing Source-to-Source Data-Flow Transformations with Rewriting Strategies and Dependent Dynamic Rewrite Rules. In R. Bodik, editor, 14th ...
syntax written using prefix constructor terms can become rather unreadable when patterns become large. Therefore it is attractrive to write rules using the concrete ...
M. Bravenboer and E. Visser. Concrete Syntax for Objects. Domain-Specific Language Embedding and Assimilation without Restrictions. In D. C. Schmidt, editor, Proceedings ...
TOC Description The concrete-syntax package provides parse-cs, a generic program for parsing programs with embedded syntax. The program is parameterized with meta ...
A term consisting of a constructor C and subterms ti: C(t1, t2, ..., tn) defines a congruence operator C(s1, s2, ..., sn) This is an operator that first matches a ...
Martin Bravenboer. Connecting XML Processing and Term Rewriting with Tree Grammars . Institute of Information and Computing Sciences, Utrecht University, The Netherlands ...
When the current subject term is known for a match action, the bindings it induces can be propagated to the uses of the variables in the pattern. This is a data-flow ...
Constant propagation is a data-flow optimization in which assignments of a constant value to a variable are propagated to the use of that variable. The following paper ...
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 ...
INCLUDE{WebNotice} The buildfarm continuously builds Stratego/XT and related packages. The distributions contain the latest of the latest developments. Although the ...
Each rule or strategy applies to an implicit subject term. See versus strategies for a discussion. Visser 13 May 2003 The implicit current subject term is related ...
Transformation systems built with StrategoXT are typically organized using a data-flow architecture. This is rather an implicit notion in the framework, which could ...
After inlining definitions that are no longer referred to can be removed. The dead-def-elim component of the optimizer achieves this. Implementation dead-def-elim ...
The dead-var-elim component of the optimizer eliminates variables from a strategy expression if they are not used in a build. For example, in the expression { x, y ...
Here are some debugging techniques Reduce the specification and the input to localize the error Format Checking Use a FormatChecker to verify the results of transformations ...
O. S. Bagge, K. T. Kalleberg, M. Haveraaen and E. Visser. Design of the CodeBoost transformation system for domain-specific optimisation of C++ programs. In D. Binkley ...
The EvaluationOrder of the alternatives of the NonDeterministicChoice operator is not defined. The StrategoCompiler can decide in which order to try the alternatives ...
The local deterministic choice operator s1 StrategoGlossary
Is their a way to display strategies (or just thier names) from within Stratego. This could be used to add trace monitors to Stratego code. For example: I-str-detectfail ...
A dynamic rule is an ordinary RewriteRule that is generated at run-time. A dynamic rule can inherit bindings of variables from its generation context. Dynamic rules ...
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 ...
This page collects references to language constructs in other languages that have some commonalities with dynamic rewrite rules. Dynamically Scoped Variables in Lisp ...
We're currently rethinking the concept of dynamic rules; quite some changes are at stake. This topic collects some of our reasoning on behaviour and implementation ...
The EBNF package is a StrategoApplication developed to illustrate the basic concepts of transformation with rewriting strategies. The package has a single source directory ...
The ECMAScript project is a collection of packages that collectively represent a formal specification for the ECMAScript Edition 4 programming language (also known ...
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 ...
Eelco Visser designed and implemented StrategoLanguage. His homepage http://www.cs.uu.nl/~visser/ has plenty of other stuff on him. See also the and Transform.EelcoVisser ...
Effects analysis can further enhance the optimizations performed by the optimizer. The following questions should be answered by effects analysis: Does the strategy ...
body of the empty page
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 ...
The evaluation order of the alternatives of the NonDeterministicChoice operator is undefined . Improved efficiency of needed definition extraction by using dynamic ...
exp-tools is a transformation tool package containing all basic features found in a package for a more complex language than expressions (for example xml-tools). It ...
xDoc: generate documentation for Stratego specifications General Rob Vermaas is working at the moment on xDoc. Examples of generated documentation can be found at ...
A. van Dam. Extending Dynamic Rules. An Application-Oriented Study into Stratego's new Dynamic Rules. Master's thesis, Utrecht University, Utrecht, The Netherlands ...
Call for Participation Fifth Stratego User Days (SUD'04) with a special session on CodeBoost March 1 3, 2004 Utrecht University Utrecht, The Netherlands TOC Scope ...
Mon, 1 Mar 2004 Tue, 2 Mar 2004 Wed, 3 Mar 2004 Main.ArthurVanDam 22 Mar 2004
Monday Stratego Development 9:00 Eelco Visser Stratego/XT in 2003 Program Overview StrategoCompiler Announcement: C transformation system 10:00 Martin Bravenboer ...
Call for Participation FIFTH STRATEGO USER DAYS with a special session on CodeBoost March 1 3, 2004 Utrecht University Utrecht, The Netherlands http://www.stratego ...
INCLUDE{" TWIKIWEB .FileAttachment"}
( this overview is under construction, please contribute! ) .def Foo.def is an SDF definition . An SDF definition is stored in a .def file and is just a bundle of ...
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 ...
First Stratego Users Day March 24, 2000 CWI, Amsterdam On Friday, March 24, 2000, Merijn de Jonge and Joost Visser of CWI, Amsterdam will host the first Stratego ...
The first Stratego Users Day was held on March 24, 2000 at CWI. The subject of the meeting was for StrategoUsers to share experiences with StrategoLanguage and get ...
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 ...
A format checker is a strategy that checks the well-formedness of an term. Format checkers can check more properties than can just be described using signatures. For ...
Fourth Users Day (SUD'03) June 5, 2003 Utrecht University Utrecht, The Netherlands TOC Achievements The last year was again a productive year for the Stratego/XT ...
Program of the Fourth Users Day (SUD'03) June 5, 2003 Utrecht University Utrecht, The Netherlands Venue The meeting will be held at the Uithof campus of Utrecht University ...
TOC Installation Q: I get errors when compiling Stratego programs or when running compiled Stratego programs. A: If you've carefully followed the instructions and ...
Brad Alexander from the School of Computer Science at the University of Adelaide visits Utrecht University, where he will give a talk in the Software Technology Colloquium ...
Stratego is a modular language for the specification of fully automatic program transformation systems based on the paradigm of rewriting strategies. The construction ...
Transform.PatriciaJohann and Main.EelcoVisser. Strategies for Fusing Logic and Control via Local, Application-Specific Transformations. Technical Report UU-CS-2003 ...
In StrategoRelease08 an extension of Stratego with syntax is provided. This extension requires a tighter integration with SDF and several of the XT tools. In effect ...
See Sdf.GeneralizedLR at the SDF web
GPP is the Generic Pretty Printer package. Checkout Tools.GenericPrettyPrinter for more information.
Generic term deconstruction decomposes a constructor application into its constructor and the list with children. This can be done using the # operator. The match ...
A generic traversal is a traversal strategy that is parameterized with the transformation or transformations that should be applied when visiting subterms. The generic ...
Generic term traversal operators support te definition of term traversal strategies like topdown and bottomup . Operators available in Stratego are: one applies a ...
See term traversal Main.EelcoVisser 14 Jun 2003
Eric Bouwers, Martin Bravenboer, and Eelco Visser. Grammar Engineering Support for Precedence Rule Recovery and Compatibility Checking. In Proceedings of LDTA'07, ...
TOC Introduction The Stratego/XT Grammar Engineering Tools is a collection of tools for the recovery, development, testing, and maintenance of grammars. Currently ...
Added the guarded left choice operator s1 StrategoRelease07
HSX: A Framework for Haskell Transformation Note that this was the second Stratego project and probably not up-to-date with modern Stratego programming practices ...
in Stratego: a Stratego program that prints its own source
This is an overview of the most horrible Stratego code that has been written. Feel free to add your own code! ;) Tuples and Concrete Object Syntax If you don't want ...
The handouts are currently not available; more recent material is available from the documentation page. Main.EelcoVisser 08 Nov 2006 Handouts for the Tutorial ...
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 ...
under construction Main.EelcoVisser 16 May 2003 A full fledged Stratego application does more than transform an ATerm into another ATerm. To transform programs ...
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 ...
From StrategoXT 0.11 the Stratego Runtime creates libraries using Libtool. This means that both static and shared libraries are constructed (on platforms that support ...
HsOpt is an optimizer for the Helium compiler implemented in the transformation language Stratego. Helium is a subset of Haskell developed at Utrecht University. The ...
Syntax "if" Strategy "then" Strategy "end" Strategy Description The strategy if s1 then s2 end applies s2 if s1 succeeds. The result of s1 is ignored. That is, if ...
Syntax "if" Strategy "then" Strategy "else" Strategy "end" Strategy Description t If s1 succeeds then strategy s2 is applied. If s1 fails, then s3 is applied. The ...
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 ...
TOC Introduction We need to improve the IO facilities in the SSL. Because the oldest strategies are to abstract, many different implementations have been created ...
An experimental fusion transformation for fusing the generic InnermostStrategy with the rules it is instantiated with was implemented in StrategoRelease05. The transformation ...
Installation instructions are available in the Stratego/XT Manual: MANUAL /installation.html
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 ...
StrategoXT 0.12 Installation Instructions Download the required packages First of all download the required packages ( .tar.gz , RPMs or Source RPMs). You need aterm ...
First of all download the required packages ( .tar.gz , RPMs or Source RPMs). You need aterm 2.3.1 and sdf2-bundle 2.3 The URLs are specified in the the release page ...
First of all download the required packages ( .tar.gz , RPMs or Source RPMs). You need aterm 2.3.1 and sdf2-bundle 2.3 The URLs are specified in the the release page ...
TOC Download distribution First download Stratego XT 0.9.1. The instructions on this page assume that you have downloaded a distribution. See the Sources topic for ...
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 ...
JSGLR: An SGLR Parse Table Evaluator for Java The jsglr library implements scannerless GLR (SGLR) parsing in Java. The library provides an interpreter for parse tables ...
Introduction Java-Swul is a domain-specific language (DSL) for creating Java SWING user interfaces. The Java-Swul language is embedded in Java. In this fasion it ...
TOC JavaBorg is an instance of MetaBorg. Applications of JavaBorg are collected in the JavaBorg package. Installation JavaBorg can be obtained directly from the Subversion ...
java-csharp was an experimental project to extend the Java language with a number of new language features, based on the related C# language. Using source-to-source ...
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 ...
Released October 04, 2004 Download Java-front 0.5 requires StrategoXT 0.12. Source tar.gz java-front-0.5 Source RPM java-front-0.5 Redhat Linux RPM Redhat 9.0: java ...
Released January 14, 2005 Download Java-front 0.6 requires Stratego/XT 0.13. Source tar.gz java-front-0.6 Source RPM java-front-0.6 Redhat Linux RPM java-front-0.6 ...
Released May 24, 2005 Download Java-front 0.7 requires Stratego/XT 0.14. Source tar.gz java-front-0.7 Source RPM java-front-0.7 Redhat Linux RPM java-front-0.7 (Redhat ...
Released November 4th, 2005 Download Java-front VERSION requires Stratego/XT 0.16. Source tar.gz TARNAME VERSION Source RPM TARNAME VERSION Redhat Linux RPM TARNAME ...
Released July, 2009 Download Java Front VERSION requires Stratego/XT 0.17. Source tar.gz aterm- ATERMVERSION sdf2-bundle- SDFVERSION strategoxt- STRVERSION java-front ...
TOC Documentation Publication: Generalized Type-Based Disambiguation of Meta Programs with Concrete Object Syntax Download Distributions (tarball, rpm, srpm) of the ...
Java-Swul parts The user interface of JavaJuke is build using Java-Swul. The interface source is a mixture of using Swul to create default Swing components and integrating ...
TOC Introduction The examples covered in this page show some of the capabilities of Java-Swul. All the examples are based on code in the xmpl directory in the Java ...
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 ...
Home: http://www.cwi.nl/~jvisser See also StrategoAndSDF
StrategoXT packages are licensed under the GNU Lesser General Public License to: encourage the widest possible use of these packages guarantee the open evolution of ...
This page lists StrategoLanguage constructs and features that are desirable to have. Feel free to add ideas by adding an item with a descriptive name. RightToLeftTraversal ...
Language Independent Traversals for Program Transformation. EelcoVisser. Workshop on Transform.GenericProgramming (Transform.WGP'00), July 2000. Ponte de Lima, Portugal ...
STARTINCLUDE .newsitem h3 { font-size: 100 ; color: #333333; padding-bottom: 3px; border-bottom: 1px dotted #bb9; } .newsitem em { float: right; font-size: x-small ...
Good layout is important for the readability and hence maintainability of programs. This holds for any programming language. Stratego aims at not only providing a ...
Synonym for the DeterministicChoice operator CategoryGlossary StrategoGlossary
The documentation of Standard Library must be improved. You can help with this in two ways: If you have to you think longer than 10 seconds about what a strategy in ...
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 ...
Local strategy definitions can be lifted to the top-level if they do not contain free variables. For example, foo(s) Bar(s, id) ; let f !"foobar" in foobar(f) end ...
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,.. ...
In ListMatching you can use list variables inside a match against a list pattern. List variables are variables followed by a . List variables represent list content ...
Lists are now (StrategoRelease07) considered as variadic constructors. The behaviour of the generic traversal operators is changed accordingly. For example, a, b, ...
Mac OS X / Intel The latest unstable releases of Stratego/XT 0.17 support Mac OS X on Intel machines. An experimental installer is available. See the announcement ...
INCLUDE{WebNotice} There are several mailing lists that you may subscribe to depending on the amount of information needed. All lists are subscriber post only, and ...
The match strategy ?t matches the term pattern t against the current subject term. If the match succeeds all variables in t are bound to the corresponding sub-terms ...
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 ...
MetaBorg is a method for providing concrete syntax for domain abstractions to application programmers. The method consists of embedding domain-specific languages in ...
When using syntax for the language the input is parsed against the combined syntax of the object language (for example Tiger, Java, XML or Stratego) and the language ...
E. Visser. Meta-programming with concrete object syntax. In D. Batory, C. Consel, and W. Taha, editors, Generative Programming and Component Engineering (GPCE'02) ...
MetaStratego is a meta-programming framework for Stratego which is under development by Main.KarlTrygveKalleberg and Main.ValentinDavid. Contact these authors directly ...
In programming with concrete object syntax the transitions from the meta language to the object language and vice versa are marked by special constructors: transition ...
StrategoXT On Microsoft Windows StrategoXT requires Cygwin. In StrategoXT 0.9.4 all serious problems on Microsoft Windows/Cygwin are solved. Standard tarball distributions ...
In a module meta file you can define meta information for a Stratego module. The meta file must have the same name as the module, with the .meta extension and is in ...
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 ...
The prim construct in Stratego allows calls to 'primitive' functions. This makes it easy to include external library functionality without further language extensions ...
The newname strategy is a variant of the new strategy, which generates a new unique string. Newname generates unique strings, just like new, but it also accepts a ...
The non-deterministic local choice operator s1 s2 chooses one of the strategies s1 or s2 to apply. If the one chose fails, the other one is tried. The operator is ...
A term is in normal form if no rule applies anywhere within the term. This implies that rules are applied everywhere in a term. This is not always appropriate. In ...
for the Stratego Tutorial at ETAPS 2002 language constructs: overview of topics covering constructs of the language Glossary: explanation of terminology Card data ...
Overview About the Stratego transformation language Stratego/XT combines the Stratego language and the XT tools Documentation Overview of the available documentation ...
Otto Skrove Bagge has designed and implemented the second version of CodeBoost. For more information, see http://www.ii.uib.no/~otto/index-eng.html.
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 ...
PIL now has its own website: http://pil-lang.org
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 ...
The Pair constructor Pair(x, y) was used in thread and traversals for distribution of environments during traversal. The Pair constructor has become obsolete with ...
An optimizer for the Transform.PanLanguage was implemented in Stratego as part of a research on Transform.InliningStrategies. It performs the following optimizations ...
parse-stratego is an XTC composition of tools in stratego-front. It parses a Stratego module according to the syntax specified in the meta file or plain syntax if ...
TOC Introduction Extensible Compilers. Many extensible compilers and programming languages allow the syntax of a base language to be extended to introduce new syntactic ...
This page contains plans for past releases. See ReleasePlan for planning of future releases. StrategoXT 0.9.3 released September 1, 2003 New names for si and sc : ...
Patricia Johann is assistant professor at Bates College, Main. She worked on the implementation of WarmFusion in Stratego with EelcoVisser. For more information see ...
The pattern match optimizer of the compiler optimizes choices of strategies guarded with a pattern match operation ?t . A strategy of the form {xs1 : ?t1; s1} is transformed ...
Patterns The match strategy ( ? ) Compares the current term to a pattern. A pattern is a term that might contain variables. If a variable in a term pattern is already ...
INCLUDE{PermissiveGrammars}
This page reports on the permissive grammars project. This project is aimed at adding practical error recovery to the Java implementation of for interactive parsing ...
A simple PIL tutorial PIL is a language based on a small subset of Java, but simpler and with a few subtle differences and convenient additions. Let's start with ...
From time to time you write obvious code, but after several days of intensive debugging, you discover that it cannot possibly work. Beginners are espacially at risk ...
Pkg-config In this release we have introduced pkg-config for locating packages and their configuration. The use of pkg-config has several advantages: Distributions ...
pp-stratego abstract pretty prints a Stratego module in abstract syntax (usually stored in a .rtree file) to Stratego concrete syntax. pp-stratego pretty prints a ...
ppgen INCLUDE{"http://losser.st-lab.cs.uu.nl/~mbravenb/tool-ref/ppgen.html"}
A printer is a mapping from terms to text. If this is done in a nice way, i.e., layout is placed in appropriate places, the formatter deserves the term pretty printer ...
Karl Trygve Kalleberg and Eelco Visser. Proceedings of the Sixth Stratego User Days . (SUD'05), Utrecht, The Netherlands, May 2 4, 2005. Technical Report UU-CS-2005 ...
M. Bravenboer, A. van Dam, K. Olmos, and E. Visser. Program Transformation with Scoped Dynamic Rewrite Rules. Fundamenta Informaticae, 69:1--56, 2005. (techrep) Abstract ...
E. Visser. Program Transformation with Stratego/XT: Rules, Strategies, Tools, and Systems in StrategoXT-0.9. In C. Lengauer et al., editors, Domain-Specific Program ...
The prolog-tools package provides basic support for processing Prolog programs. The package provides a syntax definition, pretty-printer, and signature for the language ...
Publications by year type year and type type and year alphabetically wiki
INCLUDE{PublicationPages} INCLUDE{http://buildfarm.st.ewi.tudelft.nl/releases/strategoxt/publications-unstable-latest/publications/strategoxt/strategoxt-alpha.html ...
INCLUDE{PublicationPages} INCLUDE{http://buildfarm.st.ewi.tudelft.nl/releases/strategoxt/publications-unstable-latest/publications/strategoxt/strategoxt-by-type.html ...
INCLUDE{PublicationPages} INCLUDE{http://buildfarm.st.ewi.tudelft.nl/releases/strategoxt/publications-unstable-latest/publications/strategoxt/strategoxt-by-type-by ...
INCLUDE{PublicationPages} INCLUDE{http://buildfarm.st.ewi.tudelft.nl/releases/strategoxt/publications-unstable-latest/publications/strategoxt/strategoxt-by-year.html ...
INCLUDE{PublicationPages} INCLUDE{ PUBLICATIONS /strategoxt/strategoxt-by-year-by-type.html}
Introduction The query-compiler package is a set of tools for the inspection of the process of query compilation. It shows how a SQL query is parsed, desugared, translated ...
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 ...
Quoted constructors are constructor names with double quotes as in "a very long constructor"(A, B) This feature is available from StrategoXT 0.13.
See StrategyDefinition
patterns is a idiom for checking the format of terms by means of recursion and congruences. This idiom is useful for checking the conformance of terms to some signature ...
Description The design of Stratego specifications can be improved by Transform.ReFactoring. Here is a list of refactorings. Please add to the list if you use missing ...
The data-flow diagram below shows the main tools from the StrategoXT and SDF2 packages. The red edges indicate the standard composition of a transformation system ...
A regular tree grammar defines a regular tree language. Regular tree grammars are widely applied as tools in formal reasoning, but in practice the basic formalism ...
Introduction The RelationalAlgebra package defines an syntax for relational algebra, a presentation of relational algebra in MathML and optimization of relational ...
This page provides the tentative scheduling for future releases of StrategoXT. See PastReleases for an overview of the development of StrategoXT. Note that except ...
JIRA Issue Tracking System In March 2004, we have adopted JIRA as an issue tracking system for StrategoXT and related projects. Where to report issues? Our JIRA installation ...
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 ...
B. Fischer and E. Visser. Retrofitting the AutoBayes Program Synthesis System with Concrete Object Syntax. In C. Lengauer et al., editors, Domain-Specific Program ...
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 ...
A rewrite rule has the form Lab : l r where s where Lab is the label or name of the rule, l is the left-hand side term pattern, r the right-hand side term pattern ...
M. Bravenboer and E. Visser. Rewriting Strategies for Instruction Selection. In S. Tison, editor, Rewriting Techniques and Applications (RTA'02), volume 2378 of Lecture ...
A rewriting strategy is an algorithm for transforming a term with respect to a set of rules. Some rewriting strategies are normalizing strategies, i.e., rewrite a ...
RhoStratego is a functional language supporting first-class rules and generic traversal. Download The following releases are available: rhostratego-0.1.tar.bz2 The ...
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 ...
In stratego all information is represented as a ATerm. An ATerm can be thought of as a structured tree-like representation of the information that needs to be transformed ...
See the SDF web.
See the SDF Web.
See the Sdf.SGLR topic at the SDF web
STRJ compiles Stratego to Java, and is a Java-based variation of the Compiler. TOC Introduction The compiler comes in two flavors: one called strj , compiled with ...
under construction Main.MartinBravenboer 23 Jul 2003 The samples-net-xml package is a bundle of server-side and client-side example applications using the xml and ...
The name of the Stratego compiler was changed to strc . In StrategoRelease093 sc is still available as a redirection to strc , but will no longer be available in the ...
Stratego provides scope constructs for several types of data. The variable scope {x1,...,xn:s} delimits the scope of bindings to the term variables xi to the strategy ...
E. Visser. Scoped dynamic rewrite rules. In M. van den Brand and R. Verma, editors, Rule Based Programming (RULE'01), volume 59/4 of Electronic Notes in Theoretical ...
SDF2 Bundle The webpage of the SDF2 Bundle has moved to the SDF website: http://syntax-definition.org/SdfBundle
This page has moved to Spoofax-IMP .
February 8, 2001, Universiteit Utrecht The proceedings are now available http://www.cs.uu.nl/~visser/ftp/SUD01.ps.gz http://www.cs.uu.nl/~visser/ftp/SUD01.ps.zip SecondStrategoUsersDayProgram ...
Second Stratego Users Day February 8, 2001, Universiteit Utrecht www.stratego-language.org Program 10:00 coffee 10:15 opening Session 1: Language Design (chair Main ...
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 ...
You insist on the importance of separation of concerns, in particular in separation between rules and strategies, so that rules become basic strategies on top of ...
November 30 and December 1, 2006 Delft University of Technology Delft, The Netherlands TOC Scope The Stratego User Days are a yearly meeting of Stratego/XT developers ...
Photo Sets sud06 by Martin Bravenboer by Eelco Visser
Creating a Stratego/XT project the simple way The easiest way to set up a working Stratego/XT project is to use the Create-a-Project tool called crap , available ...
Alan van Dam. Simplifying the Simplifier. HsOpt: a modular, rewrite rule based simplifier for the Helium compiler, a non-strict functional compiler. Institute of Information ...
INCLUDE{ TWIKIWEB .SiteMap}
May 2 4, 2005 Utrecht University Utrecht, The Netherlands TOC Scope The Stratego User Days are a yearly meeting of Stratego/XT developers and users. Topics include ...
The slides covering Stratego from a course on Software Generation (September 2001): Software Generation (Introduction) ps, ps (4up) Term Rewriting ps, ps (4up) Rewriting ...
Solaris/x86 support is scheduled for StrategoXT 0.9.4. Work has begun on pinpointing what is different from already working systems. The following packages are needed ...
The UltraSparc platform is the 64 bit version of the Sparc platform. It (and the Solaris operating system) can handle both 32 bit and 64 bit executables. The default ...
Jozef Kruger. Specification Of Loop Optimizations In Stratego. Improving the AutoBayes System . Master's thesis. Institute of Information and Computing Sciences, Utrecht ...
by Transform.BasLuttik and Main.EelcoVisser In Alex Sellink (editor) Proceedings of the 2nd International Workshop on the Theory and Practice of Algebraic Specifications ...
Description Turn top-level choice into multiple rules Example replace f s1 s2 s3 by f s1 f s2 f s3
The StrategoFront package contains the SDF syntax definition of Stratego, the signatures and pretty-print tables generated from that syntax definition and additional ...
This page moved to Spoofax.WebHome INCLUDE{Spoofax.WebHome}
INCLUDE{Spoofax-IMP}
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 ...
Strategic Pattern Matching is a paper about extending standard first-order term pattern matching using strategies to define complex patterns. Specifically it describes ...
K. Olmos and E. Visser. Strategies for Source-to-Source Constant Propagation. In B. Gramlich and S. Lucas (editors) Second International Workshop on Reduction Strategies ...
E. Visser. Stratego: A language for program transformation based on rewriting strategies. System description of Stratego 0.5. In A. Middeldorp, editor, Rewriting Techniques ...
abstract syntax is an syntax for the language. The structure Stratego abstract syntax is described by signatures in the stratego-front package. Tools parse syntax ...
Stratego SDF: Combining Generalized LR Parsing with Stratego by JoostVisser Description This talk was given on March 24, 2000 for the FirstStrategoUsersDay. Available ...
INCLUDE{WebNotice} The language is being used in applications in various areas of program transformation. This page lists some examples. Feel free to create a page ...
The back-end of the compiler translates a CoreStratego program to C code. Main.EelcoVisser 17 Aug 2003
StrategoBox is a syntax defintion for using ConcreteSyntax for the Tools.BoxLanguage inside the StrategoLanguage. With StrategoBox you can write powerful PrettyPrinters ...
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 ...
Delft University of Technology The Program Transformation project of the Software Engineering Research Group at the Delft University of Technology takes care of most ...
Introduction The Stratego Compiler translates a Stratego specification to a C program. The compiler is completely implemented in Stratego (except for the parser, ...
Reported Platforms GNU/Linux at i386 SuSE 8.2 and 9.0 Redhat 8.0 Redhat 9.0 Debian 3.0 GNU/Linux at PowerPC Debian testing with GCC 3.4.1, PowerMac6,3 Mac OS X 10 ...
The first ideas for System S were developed at the Programming Research Group of the University of Amsterdam and at Transform.CWI. A prototype for the StrategoLanguage ...
The syntax definition of Stratego is organized by syntactic category (Strategy, Term, etc.). This makes it hard to distinghuish syntactic sugar from core constructs ...
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 ...
INCLUDE{WebNotice} Stratego is a language for program transformation and XT is a collection of tools for building and generating program transformation components ...
INCLUDE{WebNotice} EelcoVisser, 23 November 2011 Stratego/XT is available in several ways: Users of Stratego/XT or packages based on Stratego/XT typically just want ...
This page contains a complete overview of all releases of Stratego. Not all distributions are still available from the server. However, all distributions since 0.4 ...
Stratego 0.8.1 Contents of the Distribution The StrategoDistribution contains the complete sources of the StrategoCompiler, StrategoScript and the standard library ...
This page contains a complete overview of all releases of Stratego. Not all distributions are still available from the server. However, all distributions since 0.4 ...
The Stratego Emacs mode is currently available at: https://svn.strategoxt.org/repos/StrategoXT/stratego-editors/editor/trunk/emacs/stratego-mode.el Installation instructions ...
Upcoming STARTINCLUDE 2009-06-16 Code Generation 2009 tutorial on Creating Domain-Specific Languages with Stratego/XT. STOPINCLUDE Past 2008-10-21 OOPSLA 2008 talk ...
Q: Can I get Stratego/XT running on Windows? A: We do not currently provide a pre-built binary of 0.17 on Windows at the moment. You can compile Stratego/XT on Windows ...
Wij waren op zoek naar een zipWith-achtige functie in stratego; de referentiepagina bevat allemaal harige strategocode waar wij met onze pet niet zo snel bij kunnen ...
Description The Stratego-front package contains tools and definitions for the Stratego syntax. stratego-front defines the syntax in SDF. These definitions are used ...
The front-end of the compiler parses the source modules, performs several checks on them, integrates multiple definitions, and produces a CoreStratego program for ...
This page provides an alphabetic glossary of terminology in the language. It is not complete nor finished. Feel free to add an entry or to improve an existing entry ...
Since its always interesting to see how ideas develop, this page contains a reconstruction of the development of StrategoLanguage and its implementation. March 1997 ...
A StrategoIdiom is a standard method for solving some problem in a StrategoLanguage specification. StrategoRefactorings are methods for transforming a Stratego specification ...
The Stratego Interpreter is currently part of the Shell.
Stratego/J: A Stratego Core Format Engine Stratego/J is an execution engine for the Stratego language, implemented in Java. It allows the execution of the full Stratego ...
INCLUDE{WebNotice} Stratego is a small and efficient domain-specific language for program transformation. It is based on the paradigm of programmable rewriting strategies ...
This is an overview of topics covering the various constructs in the language. This is a subset of the glossary, which also lists concept, advice, design and tool ...
The StrategoLogo needed an upgrade; the new logo is a smoother version of the original StrategoLogo. The StrategoLogo depicts TermTraversal. Please note that all logos ...
Introduction stratego-misc is a small, but versatile package of Stratego modules, implementing strategies and tools that are not (yet) in the SSL. It might be handy ...
TOC stratego-net is a package you can use to implement CGI based services or access a service at a certain URL using HTTP. Scenarios : write an Tools.ATermService ...
The StrategoCompiler performs a number of transformations/optimizations including the following: Pattern match merging Symbol caching Simplification Desugaring The ...
The Stratego Optimizer consists of a number of source-to-source transformation components that are called by the StrategoCompiler. Optimizations that are already implemented ...
This page starts a collection of tips for programming in Stratego. Programming standards layout and naming conventions techniques idiom standard methods for solving ...
The definition of the syntax in StrategoXT 0.9 provides a pretty-print table for Stratego programs. It does not yet support layout preservation and is not always very ...
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 ...
INCLUDE{WebNotice} Full bibliography of Stratego Bibliography of Stratego/XT related publications at researchr by year and type strategoxt.bib Overview transformation ...
Introduction Stratego Regular is a package of tools for working with tree languages. A tree language is a set of trees define by a tree grammar. Stratego Regular ...
Released May 10, 2004 Download See the installation instructions if you are not familiar with the standard installation procedure of tarballs or RPMs. Source tar.gz ...
Issues fixed in StrategoXT 0.10 Bug STR-8 Scopes and Undefined are reserved terms STR-10 Incorrect variable unbound error when using the ( ) construct STR-11 Unbound ...
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 ...
Resolved Issues for StrategoXT 0.11 Bug STR-7 pack-sdf fails with the message ERROR: Module Java.sdf not found if sglr does not exist STR-52 Illegal C code for mutual ...
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 ...
Issues closed and resolved in StrategoXT 0.12 Bug STR-90 sdf2rtg (or maybe just pp-rtg) does not support quoted constructors STR-96 Generic application of dynamic ...
Stratego/XT 0.13 released January 13, 2005 Download See the installation instructions if you are not familiar with the standard installation procedure of tarballs ...
Issues for StrategoXT 0.13. Bug STR-25 Appl/2 or Cons/0 is a reserved term? STR-127 ambiguity for negative numbers following colon in rules(..) STR-130 dr old uses ...
Stratego/XT 0.14 released May 9th, 2005 Download See the installation instructions if you are not familiar with the standard installation procedure of tarballs or ...
Release Notes StrategoXT Version 0.14 Bug STR-59 sdf syntax: seq/2 overloaded STR-82 prettyprinting of seq in iter-sep fails STR-230 sglri does not support input ...
Stratego/XT 0.15 released July 5, 2005 This is an experimental release featuring a refactoring of the internals of the language definition and compiler. Please report ...
Release Notes Stratego/XT Version 0.15 (Stratego Core Compiler Experimental) Bug STR-220 syntax priority issue: 's1 STR-224 Term projection in annotations is broken ...
Stratego/XT 0.16 released November 4th, 2005 RED Warning: ENDCOLOR This release has known issues with recent GCC 4.x, GNU Make 3.81, Mac OS X, and operating systems ...
Release Notes Stratego/XT Version 0.16 (Stratego Core Compiler) Bug STR-14 Scoping problem at higher optimization levels STR-15 strc doesn't work if invoked with ...
Stratego/XT STRATEGOXTVERSION released August 31st, 2005 Download See the installation instructions if you are not familiar with the standard installation procedure ...
Release Notes Stratego/XT Version 0.16M1 (bugs in 0.15) Bug STR-85 Sloppy variable-scope in let-strategies STR-145 Shared libraries are not shared at Cygwin: static ...
Stratego/XT 0.17 released July 2009 Known issues On 64 bit systems, parsing using SGLR (which is used in many Stratego programs) can result in SEGV due to limited ...
Release Notes Stratego/XT Version 0.17 Bug STR-248 implode-asfix: support AsFix2ME constructs STR-263 Extend ArgOption with default value argument STR-283 pp ...
Version 0.5 released: March 26, 2001 SUMMARY OF CHANGES (with respect to release 0.4.22) StrategoScript an interpreter for Stratego Syntax clean up Compiler and library ...
This is a developers release. See StrategoDownload to get it. The following changes were logged. spec/Makefile.am (SUBDIRS): Changed order of sub-directory to avoid ...
2001-04-13 Eelco Visser spec/slib/spec/Makefile.am: Simplified makefile for library spec/slib/spec/share-test.r: Defined test 2001-04-12 Eelco Visser bootinstall ...
Changes since StrategoRelease052 2001-05-22 bootinstall bootstrap spec/slib/spec/sunit.r: Replaced FAIL with fail. fail should be safe, i.e., not eliminate actions ...
Changes since StrategoRelease053 Summary Dynamic rules: see ScopedDynamicRewriteRules paper Lots of improvements to the library (thanks Main.HedzerWestra and Main ...
In this release a few extensions to the library have been made that are needed in bootstrapping the new compiler that will be released in StrategoRelease06. Main ...
See also StrategoRelease061 StrategoRelease062 StrategoRelease063 Stratego version 0.6 is available from www.stratego-language.org SUMMARY OF CHANGES (with respect ...
Stratego version 0.6.1 is available from http://www.stratego-language.org SUMMARY OF CHANGES (with respect to release StrategoRelease06) COMPILER Added compile time ...
Stratego version 0.6.2 is now available from StrategoDownload released: October 6, 2001 SUMMARY OF CHANGES (with respect to release 0.6) CONTRIBUTIONS Bug reports ...
Available from StrategoDownload New features TermWrap TermProject Release Announcement Version 0.6.3 released: November 26, 2001 SUMMARY OF CHANGES (with respect to ...
Stratego 0.6.4 is now available from http://www.stratego-language.org The release fixes a "fikse bug in Stratego!!" in the translation of Strategy Rules (rules of ...
Stratego version 0.7 is now available. Main.EelcoVisser 13 Mar 2002 New in 0.7beta FixedLengthTuple ListConstructor ListTraversal PairConstructor New in 0.7beta1 ...
Release 0.7 is in preparation. See ReleasePlan and ToDo for plans. Main.EelcoVisser 27 Oct 2001
See DependencyGraph08 for an overview of the dependencies between the packages involved in Release 0.8 Release 0.8 TermAnnotations Simple ListMatching ConfigurationFiles ...
Version 0.8.1 released: September 20, 2002 This is a maintenance release, providing small improvements over version 0.8. The concrete syntax extension requires new ...
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.1 Version StrategoXT-0.9.1 released on June 4, 2003 Contents TOC Download Source distribution StrategoXT is built using the ATermLibrary, the SDF syntax ...
StrategoXT 0.9.2 Version StrategoXT-0.9.2 released on July 4, 2003 Contents TOC Download Source tar.gz aterm-2.0 sdf2-bundle-1.6 strategoxt Source RPM aterm-2.0 sdf2 ...
StrategoXT 0.9.3 StrategoXT 0.9.3 is released on September 1, 2003. Contents TOC Download Source tar.gz aterm-2.0 sdf2-bundle-1.6 strategoxt Source RPM aterm-2.0 ...
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 ...
Stratego Release 1.0 should provide a polished design and a stable and efficient implementation. See the ReleasePlan for the planned new features of this release. ...
This is a fact a slogan written on a shirt a reminder of the central role of rules in Stratego ? Main.EelcoVisser 10 Mar 2004
The Stratego Run-Time System is a C library that extends the Library with support for compiled Stratego programs. The SRTS includes a large set of primitives that ...
The semantics of the core of Stratego is described in BuildingProgramOptimizersWithRewritingStrategies and ACoreLanguageForRewriting. Since those papers were written ...
Introduction The Stratego Shell is an interactive front-end to the Interpreter. In the Stratego Shell you rewrite a current subject term according to strategies ...
Released January 14, 2005 Download Shell 0.4 requires Stratego/XT 0.13 and the GNU Readline library. Source tar.gz stratego-shell-0.4 Source RPM stratego-shell-0.4 ...
Released May 20, 2005 Download Shell VERSION requires Stratego/XT 0.14 and the GNU Readline library. Source tar.gz stratego-shell- VERSION Source RPM stratego-shell ...
Released November 04, 2005 Download Shell VERSION requires Stratego/XT 0.16 and the GNU Readline library. Source tar.gz TARNAME VERSION Source RPM TARNAME VERSION ...
Released July, 2009 Download Stratego Shell STRVERSION requires Stratego/XT 0.17. Source tar.gz aterm- ATERMVERSION sdf2-bundle- SDFVERSION strategoxt- STRVERSION ...
A StrategoSignature is an AlgebraicSignature . Main.MartinBravenboer 25 Jan 2003
The Stratego simplifier is applied at several times by the optimizer. The simplifier reduces strategy expressions by means of a large number of simple rewrite rules ...
The StrategoLanguage was developed with the support of many StrategoContributors and the following institutes University of Amsterdam Oregon Graduate Institute of ...
INCLUDE{WebNotice} Please consult the following resources for support on Stratego/XT: Mailing list IRC User Days Issue Tracker Main.KarlTrygveKalleberg 14 Jun 2008 ...
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 ...
Tools in stratego-tools: Stratego Tools in StrategoXT 0.10 contains a new tool, pp-stratego-latex-alltt. This tool is useful for including Stratego code in publications ...
Strategies for Program Transformation Stratego Tutorial at ETAPS Full Day Tutorial on April 14, 2002 at Transform.ETAPS 2002 in Grenoble, France Handouts are now ...
The following people have been known to write Stratego programs: OttoBagge MerijnDeJonge DickKieburtz TobiasKuipers KarinaOlmos AndrewTolmach EelcoVisser JoostVisser ...
INCLUDE{WebNotice} The Stratego Users Days is as series of events organized to bring together designers and users of Stratego. Future events None planned Past events ...
This page lists ideas for programming utilties for Stratego programmers. StrategoDebug xDoc generate documentation for Stratego specifications Shell interactive ...
Released November 4th, 2005 Download Stratego/XT Utilities VERSION requires Stratego/XT 0.16. Source tar.gz TARNAME VERSION Source RPM TARNAME VERSION Redhat Linux ...
Released July, 2009 Download Stratego/XT Utilities VERSION requires Stratego/XT 0.17. Source tar.gz aterm- ATERMVERSION sdf2-bundle- SDFVERSION strategoxt- VERSION ...
This site is based on wiki, a tool for collaborative website development, which makes it possible for everyone with a browser, that is you to contribute by editing ...
StrategoLanguage is designed for transformation of tree or term structures. Stratego has support for the definition of generic traversals over trees, which makes the ...
Stratego/XT is the combination of the language for strategic programming with the XT bundle of transformation tools. XT XT is a bundle of transformation tools that ...
Stratego/XT: An Annotated Bibliography INCLUDE{http://www.stratego-language.org/publications/publications.html}
Martin Bravenboer, Karl Trygve Kalleberg, Rob Vermaas and Eelco Visser. Stratego/XT 0.16: Components for Program Transformation Systems . In J. Hatcliff and F. Tip ...
The Stratego/XT distribution consists of the following packages: Stratego/XT Core Stratego packages stratego-front Stratego syntax and support for concrete object ...
A strategy definition f(x1,...,xn) s defines a strategy operator f with n strategy parameters. An application f(s1,...sn) of this operator is equivalent to let x1 ...
The strategy inlining component of the optimizer replaces calls to strategies with their body, allowing other optimizations to specialize the strategy to its arguments ...
A StrategyRule of the form Lab :: s1 s2 where s3 is syntactic sugar for a StrategyDefinition of the form Lab s1; where(s3); s2 StrategoRelease06 introduced a bug ...
TOC Introduction StringBorg is a solution to injection attacks for arbitrary languages. StringBorg prevents injection attacks by embedding the syntax of guest languages ...
The rules mechanism can be used to enable a set of rules. TriggerRules ?Context(Bla, ); rules( A : ... ... B : ... ... ) traverse rec x({ A, B : try(TriggerRules ...
Question: Is there any symbol table implementation in stratego? Yes. There are several ways to go about using symbol table like functionality in Stratego programs ...
SystemS is the name for the system of combinators that form the core of the StrategoLanguage. SystemS is described in the following papers: Program Optimizers with ...
tfof-deforest is a small demo package around a case study into transformation of functional programs, more specifically: on eliminating intermediate trees by deforestation ...
Template-based code generation is an idiom for program transformation in which the structure of the target code drives the generation process. Jonne van Wijngaarden ...
Introduction Stratego uses terms to represent the abstract syntax of programs or documents. A term consists of a constructor and a list of argument terms. Sometimes ...
Starting with StrategoRelease093, strategy operators can be passed terms in addition to strategies. Currently, a strategy definition is of the form f(s1, ..., sn) ...
TermProject patterns simplify projection of sub-terms. A strategy application inside a match pattern selects the corresponding sub-term and applies s to it. For example ...
A term traversal is a strategy that visits the subterms of a term in some order. See also traversal strategy term traversal operator
TermWrap patterns simplify wrapping some complex constructor pattern around a term. For instance, split(f,g) can now be written as !(,) and this generalizes to arbitrary ...
Dryad is a natural female tree spirit, associated with trees. Also, it is a collection of tools for developing transformation systems for Java source and bytecode ...
The Dryad Compiler is an open compiler for the Java platform, based on The Dryad. TOC Overview of Features The Dryad Compiler is a compiler for a language formed by ...
Utrecht University, Friday May 3, 2002 Stratego is a language for program transformation based on the paradigm of rewriting strategies. The language is being used ...
On May 3, 2002 the ThirdStrategoUsersDay was held at Utrecht University. During the day seven presentations about features or applications of Stratego were given. ...
Released November 4th, 2005 RED warning: this release is still under construction!! ENDCOLOR Download Tiger Base VERSION requires Stratego/XT 0.16 and Stratego/XT ...
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 ...
by Main.EelcoDolstra and Transform.HedzerWestra This term paper written in July 2000 explains the use of Stratego in specifying an optimizer for the scripting language ...
A transformation rule is a description of a single transformation step. Examples of transformation rules are constant folding beta reduction in the lambda calculus ...
StrategoXT encourages a development model in which stand-alone components are developed for separate aspects of program transformation, instead of implementing integrated ...
An experimentation project for exploring extensibility of languages and their transformations. Sources Blog E.Visser. Transformations for Abstractions. SCAM 2005. ...
K. Olmos and E. Visser. Turning dynamic typing into static typing by program specialization. In D. Binkley and P. Tonella, editors, Third IEEE International Workshop ...
Documentation for version 0.4.x of Stratego (2000) not up to date with latest version. The StrategoTutorial HTML PostScript Explains how to get started using Stratego ...
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 ...
An ugly-printer is a PrettyPrinter that produces ugly output. For some applications ugly-printers can be useful. The tool pp-aterm implements a generic ugly-printer ...
After a strategy fails, variables that have been bound in matches should be unbound. This is not supported by the current compilation scheme. The following example ...
Akim Demaille pointed out that the use of autoconf and automake in Stratego and XT is antiquated, and badly needs to be updated to more modern versions of these tools ...
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 WarmFusionTransformation
PatriciaJohann and EelcoVisser. Warm fusion in Stratego: A case study in the generation of program transformation systems. Annals of Mathematics and Artificial Intelligence ...
Warm fusion is a program transformation technique for deforesting functional programs developed by John Launchbury and Tim Sheard. Warm fusion works by the cata/build ...
SEARCH{". " web " INCLUDINGWEB " regex "on" nosearch "on" order "modified" reverse "on" limit "50" format " $percntCALC{\"$dollarPROPERSPACE($topic(40, ...))\"}$percnt ...
SEARCH{". " regex "on" nosearch "on" nototal "on" order "modified" reverse "on" limit "100" nosummary "on" header " Topic Changed By " format " $topic $date $wikiusername ...
SEARCH{". " regex "on" nosearch "on" nototal "on" order "modified" reverse "on" limit "200" nosummary "on" header " Topic Changed By " format " $topic $date $wikiusername ...
SEARCH{". " regex "on" nosearch "on" nototal "on" order "modified" reverse "on" limit "500" nosummary "on" header " Topic Changed By " format " $topic $date $wikiusername ...
See http://www.webdsl.org
INCLUDE{WebNotice} Stratego/XT Stratego/XT is now part of the Spoofax Language Workbench, which provides an Eclipse plugin for developing SDF and Stratego, and creating ...
SEARCH{"\. " scope "topic" regex "on" nosearch "on" format " $topic "}
WEBLOGODISPLAY Home Documentation Language Research Papers Applications Download Continuous build Extensions Support Mailing lists IRC Users Days Bug Reports Developers ...
2004-02-25 Nemerle is a new hybrid (functional, object-oriented and imperative) programming language for the .NET platform. Key features of the language include: ...
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 ...
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 ...
WebNotify is a subscription service to be automatically notified by email when topics change in the TWiki.Stratego web. This is a convenient service, so you do not ...
The following settings are web preferences of the TWiki.Stratego web. These preferences overwrite the site-level preferences in TWIKIWEB . WIKIPREFSTOPIC , and can ...
Stratego Strategies for Program Transformation http://www.stratego-language.org Stratego Strategies for Program Transformation INCLUDE{"Main.RssBase"}
Simple search: Topic text (body) All webs (not only TWiki.Stratego web) Topic name TWIKIWEB .BookView Advanced search: Topic text (body) Search all MAINWEB TWIKIWEB ...
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 ...
The worker-wrapper component of the optimizer splits strategy definitions into a wrapper performing a pattern match, and a worker doing the real work of the operator ...
Rob B. Vermaas. xDoc. An extensible documentation generator. MSc Thesis INF/SCR-03-41. Center for Software Technology, Institute of Information and Computing Sciences ...
The style guide for writing Javadoc comments is a useful starting point for a style guide for writing xDoc comments for Stratego. this guide should be rewritten to ...
XT is a collection of tools for building complete transformation systems. See the Tools web
Main.MerijnDeJonge, Main.EelcoVisser and Main.JoostVisser. XT: a bundle of program transformation tools. In Tools.MarkVanDenBrand and Transform.DidierPerigot, editors ...
XTC Tool Composition XTC implements the XT component model and provides support for creating compositions of XT components. The xtc tool is used to register components ...
TOC Introduction XWeb is a generic template-based transformation demonstration service; it's implemented as a CGI application. The current version contains a demo ...
With the Stratego-xml syntax defintion you can use the ConcreteSyntax of XML syntax in the Stratego. The stratego-net samples package contains some examples of the ...
XT Applet is a small package configured with automake that you can use to get started with writing Stratego/XT applications. The src/ subdirectory contains a sample ...
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 ...
http://zef.me http://twitter.com/zef Main.ZefHemel 01 Oct 2009
Number of topics: 444