Code Generation 2008 Programme Information
Session TitleImplementation Techniques for Domain-Specific Languages

Session Type Tutorial

Duration90 minutes

Session Description Domain Specific Languages (DSLs) are a hot topic these days. As usual when something is hot and new, there's great confusion about the concepts and the details and various sub-communities form.

This talk will provide an overview over the most important approaches to implementing domain specific languages. Examples will be shown of each of the approaches:
  • Dynamic internal DSLs, where the DSL is embedded in a host language and runtime meta programming is used for implementation. Clearly the most prominent example is Ruby.
  • Compiled internal DSLs, where compile time metaprogramming or other language features are used to implement the language. Examples include Converge and Scala.
  • External DSLs using textual or graphical syntax using a generative or interpretative backend. Examples include the Eclipse/oAW world and tools such as MetaEdit+
Finally the session describes what the concept of Language Workbenches adds to the notion of DSLs and illustrates some of this using Intentional Software's approach to the topic, introducing the idea of projectional editors along the way.

Speaker Markus Völter works as an independent consultant and coach for software technology and engineering. He focuses on software architecture, model-driven software development and domain specific languages as well as on product line engineering. Markus is (co-) author of many magazine articles, patterns and books on middleware and model-driven software development. He is a regular speaker at conferences world wide. Markus can be reached at voelter at acm dot org or via

Intended Audience Introductory / Intermediate.

Links Read about Markus's work with OpenArchitectureWare on the Code Generation Network.