<< back to topics
Domain-Specific Languages (DSLs)
Summary of Selected Papers
People are modeling everywhere. Both science and philosophy use models to understand and describe the concepts and phenomena in their fields. Engineering disciplines use models to describe the systems they want to design. We all use models, but only computer science defines and studies the set valid of models, namely the modeling language explicitly. This is made necessary because computer scientists use models not only to communicate among each other, but also with computers.
Computer science, therefore, is very much about languages. We use universally applicable modeling languages to describe problems and problem contexts. We employ general-purpose programming languages (GPLs) to implement solutions. We specify properties, architect and design solutions. And we define tests, as well as an increasing number of application specific languages and domain-specific languages (DSLs) tailored for a concrete target area. Such DSLs always are constructed with a particular domain in mind. Examples include HTML for websites, Matlab for numerical computation, or SQL for relational database management. In each instance the DSL trades some of the expressiveness of GPLs in order to allow for more concise models in the target domain.
As software systems have become essential components of nearly all innovative
products, increasingly many non-ICT experts now find themselves working
with these systems.
Furthermore, complexity of software-based systems is increasing.
While modeling languages such as the
Unified Modeling Language (UML)
provide a high level of abstraction to deal with complexity, these languages are
usually still too technical (hence UML profiles are useful, as discussed in
[GHK+07] and
[FPR02]).
DSLs address both of these problems. Non-ICT experts benefit from DSLs by
being able to transfer already familiar language concepts to the new application.
Experienced users benefit by having a smaller mental gap between the software
system and the associated real world models.
The main challenge of domain specific languages currently is their sophisticated engineering, which requires more than fundamental contirbutions, such as a carefully defined grammar and corresponding translation programs. Productive usage of a language also requires extensive tool support. Generative Software Engineering techniques are at the center of attention for attempts to meet these challenges. In [SRV+10] we discuss the state of the art and current efforts to develop languages through meta modeling.
The figure below depicts the role of DSLs in a model-based software engineering process. DSLs and the models expressed with them are becoming first-class elements of the software engineering process. In order to support this development, research needs to be focused on new, effective, and efficient ways of creating DSLs and corresponding tool support.

DSL Definition
DSLs have to be designed carefully to meet their respective requirements. The prime concern of DSL design consists of a desired concrete and abstract syntax [CFJ+16]. We examine the relations between concrete and abstract syntax and propose a language definition format in [KRV07b] and [KRV10], which allows the combined definition of concrete and abstract syntax.
How to define the semantics of DSLs is discussed in Semantics of Modeling Languages. The aspect of variability in syntax and semantics for DSLs in general and UML in particular has been discussed in [GR11].
In [FHR08] we discuss metrics and potential guidelines, that help to achieve high quality models and extend this into a collection of design guidelines for DSLs in [KKP+09]. Our experience shows that these guidelines tremendously improve the quality of DSLs. They target and enable suitability, reuse, conciseness, and usability.
Composition of DSLs
Modularity is a key concept in software development and the enabler for efficient reuse. We investigated the application of modularity to the development of DSLs in [GKR+07], [KRV08] and [Voe11]. Modularity has been successfully applied in various areas of the DSL development process, such as concrete and abstract syntax, context conditions, and symbol table structures and has been implemented in our language workbench MontiCore.
We can compose independently developed languages into integrated families of DSLs, which allows us to describe a system from various viewpoints using these different DSLs. The language family UML/P, defined in [Sch12], serves as an example of this technique.
As described in [KRV08] we can inherit from existing languages and adapt certain language concepts. An often used example is to extend an action language by new forms of actions.
We can reuse existing languages by embedding them as sub-languages. For instance, Java's expression language can be used for various purposes within a modeling DSL. This way we have integrated Java statements and expressions into UML/P. We are further investigating the decomposition of generators and modular composition of generated code.
These concrete techniques are summarized in the broader discussion on the so called "global" integration of domain specific modelling languages and techniques in a conceptual model [CBCR15], which is published in [CCF+15a].
DSL Tooling
As previously mentioned, the usability of a language depends on the availability of powerful tooling. We have implemented the MontiCore DSL workbench as a realization of all the aforementioned concepts regarding DSLs. It is available as a stand alone tool as well as a collection of Eclipse plugins. It also creates stand alone tools as well as tailored Eclipse-based plugins for the defined DSLs [KRV07]. We generate editors with syntax highlighting, syntactic and semantic content assist and auto completion, graphical outlines, error reporting, hyperlinks, etc., from the DSL's definition only.
In [LRS+10] we discuss the need for evolution and management of models. We especially identify the need for comfortable transformation languages. Therefore, [Wei12] presents a tool that creates an infrastructure for transformations that are specifically dedicated to an underlying DSL. The generated transformation language is quite understandable for domain experts and comes with an engine dedicated to transform models of this DSL.
MontiCore
More details about the MontiCore DSL workbench can be found in [GKR+06a], [KRV08], [KRV10] as well as the MontiCore Website.
Summary
- DSLs are a promising technology to deal with complexity of software products and the pervasion of software into various domains.
- Quality assurance and efficient ways to create, manage, and evolve DSLs are essential for the success of DSLs.
- Key factors for efficient DSL tooling design are compositionality and thus reusability of tooling and language infrastructures.
- MontiCore is a successful tooling infrastructure for the development of DSLs.
Related Topics
- Agile Model-Based Software Engineering
- Compositionality/Modularity of Models
- Evolution & Transformation of Models
- Generative Software Engineering
- MontiArc - Architectural Modeling
- MontiCore - Language Workbench
- Semantics of Modeling Languages
- Software Language Engineering (SLE)
- Unified Modeling Language (UML)
- Variability & Software Product Lines (SPL)
Selected Related Publications
- [CFJ+16]
B. Combemale, R. France, J. Jézéquel, B. Rumpe,
J. Steel, D. Vojtisek:
Engineering Modeling Languages: Turning Domain Knowledge into Tools.
Chapman & Hall/CRC Innovations in Software Engineering and Software Development Series, November 2016. - [CBCR15]
T. Clark, M. v. d. Brand, B. Combemale, B. Rumpe:
Conceptual Model of the Globalization for Domain-Specific Languages.
In: Globalizing Domain-Specific Languages (Dagstuhl Seminar), LNCS 9400, pp. 7-20, Springer, 2015. - [CCF+15a]
B. H. C. Cheng, B. Combemale, R. B. France, J.-M. Jézéquel, B. Rumpe (Eds.):
Globalization of Domain Specific Languages (Dagstuhl Seminar).
LNCS 9400, Springer, 2015. - [Wei12]
I. Weisemöller.
Generierung domänenspezifischer Transformationssprachen.
Shaker Verlag, ISBN 978-3-8440-1191-3.
Aachener Informatik-Berichte, Software Engineering, Band 12. 2012 - [Sch12]
M. Schindler.
Eine Werkzeuginfrastruktur zur agilen Entwicklung mit der UML⁄P.
Shaker Verlag, ISBN 978-3-8440-0864-7.
Aachener Informatik-Berichte, Software Engineering Band 11. 2012 - [GR11]
H.Grönniger, B. Rumpe.
Modeling Language Variability.
In: Workshop on Modeling, Development and Verification of Adaptive Systems. 16th Monterey
Workshop, Redmond, Microsoft Research, March 31-April 2, 2010. LNCS vol. 6662,
pp. 17-32, Springer, 2011 - [Voe11]
S. Völkel.
Kompositionale Entwicklung domänenspezifischer Sprachen.
Shaker Verlag, ISBN 978-3-8440-0328-4. Aachener Informatik-Berichte, Software Engineering Band 9. 2011 - [ZPK+11]
M. Zanin, D. Perez, D. Kolovos, R. Paige, K. Chatterjee, A. Horst, B. Rumpe
On Demand Data Analysis and Filtering for Inaccurate Flight Trajectories.
In: Proceedings of the SESAR Innovation Days, EUROCONTROL, November 2011 - [SRV+10]
J. Sprinkle, B. Rumpe, H. Vangheluwe, G.Karsai.
Metamodelling: State of the Art and Research Challenges.
In: MBEERTS: Model-Based Engineering of Embedded Real-Time Systems, p. 57 - 76
International Dagstuhl Workshop
Dagstuhl Castle, Germany, LNCS 6100, Springer Berlin, October 2010 - [LRS+10]
T. Levendovszky, B. Rumpe, B. Schätz, J. Sprinkle.
Model Evolution and Management.
In: MBEERTS: Model-Based Engineering of Embedded Real-Time Systems, p. 241 - 270
International Dagstuhl Workshop
Dagstuhl Castle, Germany, LNCS 6100, Springer Berlin, October 2010 - [Kra10]
H. Krahn.
MontiCore: Agile Entwicklung von domänenspezifischen Sprachen im Software Engineering.
Shaker Verlag, ISBN 978-3-8322-8948-5. Aachener Informatik-Berichte, Software Engineering Band 1. 2010 - [KRV10]
H. Krahn, B. Rumpe, S. Völkel.
MontiCore: a Framework for Compositional Development of Domain Specific Languages.
In: International Journal on Software Tools for Technology Transfer (STTT), Volume 12, Issue 5, pp. 353-372, September 2010 - [KKP+09]
G. Karsai, H. Krahn, C. Pinkernell, B. Rumpe, M. Schindler, S. Völkel.
Design Guidelines for Domain Specific Languages.
In: Proceedings of the 9th OOPSLA Workshop on Domain-Specific Modeling (DSM' 09)
Helsinki School of Economics. TR no B-108. Orlando, Florida, USA, October 2009 - [FHR08]
F. Fieber, M. Huhn, B. Rumpe.
Modellqualität als Indikator für Softwarequalität: eine Taxonomie.
In: Informatik-Spektrum. Springer Verlag.
Band 31, Heft 5, Oktober 2008 - [KRV08]
H. Krahn, B. Rumpe, S. Völkel.
MontiCore: Modular Development of Textual Domain Specific Languages.
In: Proceedings of the 46th International Conference Objects, Models, Components, Patterns (TOOLS-Europe).
Zurich, Switzerland, 2008
R. F. Paige, B. Meyer: LNBIP 11, pp. 297-315
Springer-Verlag Berlin-Heidelberg 2008 - [GHK+07]
H. Grönniger, J. Hartmann, H. Krahn, S. Kriebel, B. Rumpe.
View-Based Modeling of Function Nets.
In: Proceedings of the Object-oriented Modelling of Embedded Real-Time Systems (OMER4) Workshop, Paderborn, October 2007 - [GKR+07]
H. Grönniger, H. Krahn, B. Rumpe, M. Schindler, S. Völkel.
Textbased Modeling.
In: Proceedings of the 4th International Workshop on Software Language Engineering (ateM 2007), Nashville, TN, USA, October 2007
Informatik-Bericht Nr. 4/2007, Johannes-Gutenberg-Universität Mainz, October 2007 - [KRV07]
H. Krahn, B. Rumpe, S. Völkel.
Efficient Editor Generation for Compositional DSLs in Eclipse.
In: Proceedings of the 7th OOPSLA Workshop on Domain-Specific Modeling (DSM' 07), Montreal, Quebec, Canada
Technical Report TR-38, Jyväskylä University, Finland 2007 - [KRV07b]
H. Krahn, B. Rumpe, S. Völkel.
Integrated Definition of Abstract and Concrete Syntax for Textual Languages.
In: Proceedings of the ACM/IEEE 10th International Conference on Model Driven Engineering Languages and Systems (MODELS 2007), Nashville, TN, USA, October 2007
G. Engels et al.(Eds.): LNCS 4735, pp. 286-300
Springer-Verlag Berlin-Heidelberg, 2007 - [GKR+06a]
H. Grönniger, H. Krahn, B. Rumpe, M. Schindler, S. Völkel.
MontiCore 1.0 - Ein Framework zur Erstellung und Verarbeitung domänenspezifischer Sprachen.
Informatik-Bericht 2006-04
Technische Universität Braunschweig, Carl-Friedrich-Gauss-Fakultät für Mathematik und Informatik, 2006
<< list of all topics list of all publications >>