Language Boxes: Bending the Host Language with Modular Language Changes

Lukas Renggli, Marcus Denker, Oscar Nierstrasz. Language Boxes: Bending the Host Language with Modular Language Changes. In Software Language Engineering: Second International Conference, SLE 2009, Denver, Colorado, October 5-6, 2009. LNCS, Springer, 2009.

Abstract

As domain-specific modeling begins to attract widespread acceptance, pressure is increasing for the development of new domain-specific languages. Unfortunately these DSLs typically conflict with the grammar of the host language, making it difficult to compose hybrid code except at the level of strings; few mechanisms (if any) exist to control the scope of usage of multiple DSLs; and, most seriously, existing host language tools are typically unaware of the DSL extensions, thus hampering the development process. Language boxes address these issues by offering a simple, modular mechanism to encapsulate (i) compositional changes to the host language, (ii) transformations to address various concerns such as compilation and highlighting, and (iii) scoping rules to control visibility of language extensions. We describe the design and implementation of language boxes, and show with the help of several examples how modular extensions can be introduced to a host language and environment.