Meta Programming With Concrete Object Syntax

Stratego -- Strategies for Program Transformation
E. Visser. Meta-programming with concrete object syntax. In D. Batory and C. Consel, editors, Generative Programming and Component Engineering (GPCE'02), Lecture Notes in Computer Science. Springer-Verlag, October 2002. To appear.


Meta programs manipulate structured representations (abstract syntax) of programs. The distance between the concrete syntax meta-programmers use to reason about programs and the notation for abstract syntax manipulation provided by general purpose (meta-) programming languages is too great for many applications. In this paper it is shown how the syntax definition formalism SDF can be employed to fit a meta-programming language with concrete syntax notation for composing and analyzing object programs. As a case study, the addition of concrete syntax to the program transformation language Stratego is presented. The approach is then generalized to arbitrary meta-languages.