Join us on:

T36. Back to the Roots: A Programmer's Answer to Domain-Specific Languages

Klaus Ostermann, Aarhus University

Klaus Ostermann is associate professor in computer science at the University of Aarhus in Denmark. His main research interest is in software modularity and programming language design. He has recently been awarded a prestiguous "Starting Grant" from the European Research Council on the development of domain-specific languages.

Programming is language design: Every defined name, be it a method or a data structure, extends the language. Hence every language seems to be a perfect framework for DSL development. Recently, however, several techniques that rely on syntactic abstraction mechanisms outside the programming language (such as code generator frameworks or meta-programming) have become popular. I will analyze these techniques and show that they do not scale, because DSLs developed this way lack basic composability properties. I argue that a programmers' answer to the DSL challenge is to embed DSLs, using the semantic abstraction mechanisms of the host language rather than external syntactic abstractions. Using concrete examples, I will show that embedded DSLs are easy to develop, simple to reason about, efficient, and - most importantly - composable. Moreover, DSL embedding requires only the weapons of a real programmer - a text editor and a compiler - rather than a complex toolchain. Based on the idea of DSL embedding, I will propose a principled architecture and design method called "polymorphic embedding", which can be used to compose and decompose DSLs in a plug-and-play manner. Finally, I will discuss the influence of the host language on DSL embedding. The programing languages we will discuss include Java, C#, Scala, and Haskell.


The attendees will learn to assess and compare different implementation technologies for DSLs, such as model-driven code generators, meta-programming, libraries, interpreters, and embedded domain-specific languages. In addition, the attendees will be given a detailed introduction to a particular DSL architecture called polymorphic embedding, which combines the advantages of syntactic and semantic approaches to DSLs.


Partly lecturing, partly live programming

Audience: Researchers, Practitioners, Educators
Please email any questions to . This e-mail address is being protected from spambots. You need JavaScript enabled to view it