Language Boxes: Bending the Host Language with Modular Language Changes

Renggli, Lukas; Denker, Marcus; Nierstrasz, Oscar (2009). Language Boxes: Bending the Host Language with Modular Language Changes. In: van den Brand, Mark; Gasevic, Dragan; Gray, Jeff (eds.) Software Language Engineering: Second International Conference, SLE 2009, Denver, Colorado, October 5-6, 2009. Lecture Notes in Computer Science: Vol. 5969 (pp. 274-293). Heidelberg: Springer Verlag 10.1007/978-3-642-12107-4_20

Full text not available from this repository. (Request a copy)

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.

Item Type: Book Section (Book Chapter)
Division/Institute: 08 Faculty of Science > Institute of Computer Science (INF)
UniBE Contributor: Renggli, Lukas; Denker, Marcus and Nierstrasz, Oscar Marius
Series: Lecture Notes in Computer Science
Publisher: Springer Verlag
Language: English
Submitter: Factscience Import
Date Deposited: 04 Oct 2013 15:22
Last Modified: 04 May 2014 23:27
Publisher DOI: 10.1007/978-3-642-12107-4_20
Web of Science ID: 000279394000019
URI: (FactScience: 206784)

Actions (login required)

Edit item Edit item
Provide Feedback