This paper describes the combined use of several tools for programming language manipulation, collectively given the name MetaBorg. This collection enables the syntax of a programming language to be extended. Although examples are given in Java, the tools are not specific to Java. The language extensions need to be described by a grammar that makes reference to elements of the host language, and by transformation rules that are used to translate the extended code into pure code for the host language.
One example given is a simple language, for building graphical user interfaces, that incorporates Java expressions. Expressions in this language may be translated to standard Java code using MetaBorg. The complete translation requires the use of SDF (a syntax definition formalism), SGLR (a parser), and Stratego (a program transformation system), all described further in other papers that are referenced.
I found the paper to be a little hard to follow because of the variety of tools used, none of which are fully described. It seems that the authors’ intention was to offer a taste of the power of the system, while encouraging the interested reader to seek out further references. Several examples are included, but I think it might have been better to keep to one example, and describe it in more detail.
As the paper suggests, the technique described would be useful in specialist domains where standard programming languages alone would result in unwieldy code, but it would be impractical to develop new specialist languages from scratch.