Sixth Stratego User Days

Stratego -- Strategies for Program Transformation
May 2 - 4, 2005
Utrecht University
Utrecht, The Netherlands


The Stratego User Days are a yearly meeting of Stratego/XT developers and users. Topics include

  • The state of the Stratego language and toolset
    • Ongoing developments
    • Plans and requirements for the future
  • Development tools and implementation techniques for transformation systems
    • Compilers, interpreters, documentation generation
    • Transformation components and their composition
    • Deployment issues
    • Benchmarking transformations and transformed programs
    • Extensibility of transformation systems
  • Strategies for ...
    • Data-flow optimizations
    • Partial evaluation
    • Typechecking
    • Compilation
    • etc.
  • Language-specific transformation systems
    • C, C++, Java, XML, Haskell, Koala, ...
  • Methods for design and development of transformation systems
    • Tutorials
    • Experience reports


The meeting has a workshop format with talks, but also plenty of time will be reserved for discussions, code inspections, demonstrations, and time to meet individually. A walk through the woods around the campus is usually part of the deal as well.

Based on experiences from previous years, there are two types of attendees; new Stratego programmers interested in a basic tutorial, and advanced Stratego programmers and researchers interested in the cutting edge. To accomodate both types, the 2006 meeting will consist of a tutorial day and a technical program.


The tutorial day (on Monday) will consist of a basic introduction into Stratego and XT in the morning, and a series of tutorial talks about recent developments in the afternoon. Potential topics include

  • Stratego language
    • Rules and strategies
    • Redesigned dynamic rules (including dependent dynamic rules)
  • Architecture of transformation systems
    • Language-specific libraries
    • Transformation tool composition

It would be good to know well in advance who will attend the tutorial so that we can adjust the material to the audience.

Technical Program

The other (one or) two days are intended for a technical program consisting of 30 or 45 min talks about topics from the list above or other topics of interest to the Stratego/XT community. These talks will be accompanied by short papers (4 pages), which will be published in a Utrecht University technical report.

Call for Contributions and Participation

We invite everyone interested in program transformation and Stratego/XT to attend the meeting and possibly to make a contribution to the meeting in the form of a talk or demonstration.


If you would like to give a talk or demonstration please send a short paper (at most 4 pages) to before March 15 2004, but preferably earlier. If you are in doubt whether a certain topic would be of interest to the meeting, don't hesitate to get in touch via the same email address.


From Monday, May 2 to Wednesday, May 4, 2005 we meet at Utrecht University so that everyone interested in Stratego/XT can get up to date with current developments, and get an overview of ongoing activities. This is a good opportunity for Master's students to see what is going on in the program transformation project.

A fee to cover the expenses of coffee and lunch may be necessary. Usually we go out for dinner at night, which is at your own expense. Please register as soon as possible, but before April 1, 2005, so that we can make reservations for room, lunch and dinner by sending an email to If you are coming from outside and need accomodation, you can consult the list of recommended hotels of the department.


Important Dates

  • Proposals for contributions: March 15, 2005
  • Registration for attendance: April 1, 2005
  • Meeting: May 2 - 4, 2005


The meeting will be held at the Uithof campus of Utrecht University in room BBL 416

Dinner Monday 18:30

Casa di David
Oudegracht 88 a/d werf
3511 AV Utrecht
030 2368436

Dinner Tuesday

Restaurant SOMS
BILTSTRAAT 47 in Utrecht.
Bus (lijn 4) stopt vlak voor de deur.
030 234 07 69
0655 102 765


Monday Tutorial Slides
9:00 Eelco Visser Introduction  
9:10 Martin Bravenboer Infrastructure for Program Transformation Systems pdf
10:00 Eelco Visser Stratego Bottomup: Combinators for Program Transformation Strategies pdf(1) pdf(2)
12:00 lunch + walk
14:00 Martin Bravenboer Programming with Concrete Object Syntax pdf
15:00 Eelco Visser Context-sensitive Transformations with Dynamic Rewrite Rules  
Tuesday Technical Program
9:00 Stratego/XT Developments
  Eelco Visser, Martin Bravenboer The State of Stratego/XT pdf
9:45 Eelco Visser Dynamic Rules Refactored  
11:00 break
11:15 Karl Trygve Kalleberg AspectStratego pdf
12:00 lunch + walk
14:00 Tools from Epita
  Alexandre Borghi, Valentin David, Akim Demaille, Olivier Gournet (Epita) Implementing Attributes in SDF pdf
  Akim Demaille, Thomas Largillier, Nicolas Pouillard (Epita) ESDF: A Proposal for a More Flexible SDF Handling pdf
  Valentin David, Akim Demaille, Renaud Durlin, Olivier Gournet (Epita) C/C++ Disambiguation Using Attribute Grammars pdf
15:30 break
16:00 Java Transformation
  Martin Bravenboer Java-front and Dryad for transforming Java programs pdf
Wednesday Technical Program
9:00 Java Transformation
  Rene de Groot (UU) JavaBorg applications pdf
  Mikal Ziane (), Valentin David () Refactoring to object-oriented design patterns using program transformations pdf
  Valentin David (), Mikal Ziane () Refactoring to object-oriented design patterns using program transformations - Implementation pdf
  Karl Trygve Kalleberg (UIB, UU) et al. Clone, Adapt and Improve! pdf
10:30 break
11:30 Mart Kolthof (UU) Using CIL as intermediate language for transforming C programs pdf
12:00 lunch
14:00 Optimization
  Karina Olmos (UU) Alias Analysis pdf
  Rob Vermaas (UU) The Stratego Octave Compiler pdf
15:30 break
16:00 Karl Trygve Kalleberg Spoofax: A Stratego Editor pdf

Registered Participants

Monday - Wednesday

  1. Alexandre Borghi (Epita)
  2. Martin Bravenboer (UU)
  3. Valentin David (LIP6, Epita)
  4. Akim Demaille (Epita)
  5. Renaud Durlin (Epita)
  6. Rene de Groot (UU)
  7. Mart Kolthof (UU)
  8. Thomas Largillier (Epita)
  9. Yaroslav Usenko (TUE)
  10. Rob Vermaas (UU)
  11. Eelco Visser (UU)
  12. Mikal Ziane (LIP6, Université Paris 5)

Tuesday - Wednesday

  1. Anya Helene Bagge (UIB,UU)
  2. Olivier Gournet (Epita; only Tue and Wed)
  3. Karl Trygve Kalleberg (UIB,UU)
  4. Magne Haveraaen (UIB; dinner Mon)
  5. Karina Olmos (UU)
  6. Nicolas Pouillard (Epita; only Tue and Wed)
  7. Huanwen Qu (UU)