My research is motivated by software engineering, i.e., improving the creation and maintenance of programs. By relying on program transformations for optimization, programs can be written at a higher level of abstraction.
Optimization is a special case of generation of efficient implementations from specifications.
Testing By means of program transformation a program can be instrumented with extra code for analysing test coverage. The language Stratego has been designed for the concise specification of program transformation systems. The language is based on the paradigm of rewriting strategies. A rewriting strategy is a program that determines the order of application of transformation rules. This makes transformation rules reusable in multiple transformation systems.