G4 (GPCE): Building Java Transformations with Stratego/XT
Monday, Oct 23, from 13:30 to 17:00, C120
This tutorial gives an overview of techniques for program transformation, illustrated through the 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.
Introductory: 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.
This tutorial gives an overview of techniques for program transformation, illustrated through the Stratego/XT program transformation system.
Martin Bravenboer, Utrecht University: Martin Bravenboer is a PhD student at Utrecht University, researching language extensions and program transformation.
Karl Trygve Kalleberg, University of Bergen: Karl Trygve Kalleberg is a PhD student at the University of Bergen, researching program transformation systems and language extensions for program transformation.
Eelco Visser, Utrecht University: 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.