----------------+++ Building Java Transformations with Stratego/XT Martin Bravenboer, Utrecht University Karl Trygve Kalleberg, University of Bergen Eelco Visser, Utrecht University *Monday, October 23rd, from 13:30 to 17:00* ----------------+++ Abstract This tutorial gives an overview of techniques for program transformation, illustrated through the [[http://www.stratego-language.org][Stratego/XT]] program transformation system. We explain the general architecture of transformation systems, and how Stratego/XT is used to assemble such systems from components. We introduce a set of ready made components for Java transformation, and show how to program custom transformation components using Stratego. In particular, we show how to express local transformations using rewrite rules and strategies and how context-sensitive transformations can be expressed easily using dynamic rewrite rules. All techniques and language features are illustrated with implementations of transformations on Java programs, that show how to apply all introduced techniques in practice. ----------------+++ Level: Introductory ----------------+++ Required Knowledge Basic understanding of compilers, parsing and program representation using abstract syntax trees is an advantage, but we briefly summarize the basics and ignore the technical details of parsing, since we focus on application of program transformation to a particular programming language, i.e. Java, for which all required parsing and pretty-print support is already available. ----------------+++ Speaker profiles [[http://www.cs.uu.nl/~martin][Martin Bravenboer]] is a PhD student at Utrecht University, researching language extensions and program transformation. [[http://www.ii.uib.no/~karltk/][Karl Trygve Kalleberg]] is a PhD student at the University of Bergen, researching program transformation systems and language extensions for program transformation. [[http://www.cs.uu.nl/~visser][Eelco Visser]] is assistant professor at Utrecht University, researching program transformation and software configuration. He is the principal designer and developer of the Stratego/XT program transformation system.