Embedding Languages Without Breaking Tools

Renggli, Lukas; Girba, Tudor; Nierstrasz, Oscar (2010). Embedding Languages Without Breaking Tools. In: D'Hondt, Theo (ed.) ECOOP '10: Object-Oriented Programming. 24th European Conference, Maribor, Slovenia, June 21-25, 2010. Proceedings. Lecture Notes in Computer Science: Vol. 6183 (pp. 380-404). Heidelberg: Springer Verlag 10.1007/978-3-642-14107-2_19

[img] Text
10.1007%2F978-3-642-14107-2.pdf - Published Version
Restricted to registered users only
Available under License Publisher holds Copyright.

Download (9MB) | Request a copy

Domain-specific languages (DSLs) are increasingly used as embedded languages within general-purpose host languages. DSLs provide a compact, dedicated syntax for specifying parts of an application related to specialized domains. Unfortunately, such language extensions typically do not integrate well with the development tools of the host language. Editors, compilers and debuggers are either unaware of the extensions, or must be adapted at a non-trivial cost. We present a novel approach to embed DSLs into an existing host language by leveraging the underlying representation of the host language used by these tools. Helvetia is an extensible system that intercepts the compilation pipeline of the Smalltalk host language to seamlessly integrate language extensions. We validate our approach by case studies that demonstrate three fundamentally different ways to extend or adapt the host language syntax and semantics.

Item Type:

Book Section (Book Chapter)

Division/Institute:

08 Faculty of Science > Institute of Computer Science (INF)
08 Faculty of Science > Institute of Computer Science (INF) > Software Composition Group (SCG) [discontinued]

UniBE Contributor:

Renggli, Lukas, Nierstrasz, Oscar

Series:

Lecture Notes in Computer Science

Publisher:

Springer Verlag

Language:

English

Submitter:

Factscience Import

Date Deposited:

04 Oct 2013 14:17

Last Modified:

02 Mar 2023 23:20

Publisher DOI:

10.1007/978-3-642-14107-2_19

Web of Science ID:

000284803700017

BORIS DOI:

10.7892/boris.4961

URI:

https://boris.unibe.ch/id/eprint/4961 (FactScience: 209620)

Actions (login required)

Edit item Edit item
Provide Feedback