TutorialGPCE4

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 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

Martin Bravenboer is a PhD student at Utrecht University, researching
language extensions and program transformation.

Karl Trygve Kalleberg is a PhD student at the University of
Bergen, researching program transformation systems and language
extensions for program transformation.

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.