Lessons learned from developing mbeddr: a case study in language engineering with MPS

Markus Völter, Bernd Kolb, Tamás Szabó, Daniel Ratiu, Arie van Deursen

Research output: Contribution to journalArticleScientificpeer-review

13 Citations (Scopus)
622 Downloads (Pure)


Language workbenches are touted as a promising technology to engineer languages for use in a wide range of domains, from programming to science to business. However, not many real-world case studies exist that evaluate the suitability of language workbench technology for this task. This paper contains such a case study. In particular, we evaluate the development of mbeddr, a collection of integrated languages and language extensions built with the Jetbrains MPS language workbench. mbeddr consists of 81 languages, with their IDE support, 34 of them C extensions. The mbeddr languages use a wide variety of notations---textual, tabular, symbolic and graphical---and the C extensions are modular; new extensions can be added without changing the existing implementation of C. mbeddr's development has spanned 10 person-years so far, and the tool is used in practice and continues to be developed. This makes mbeddr a meaningful case study of non-trivial size and complexity. The evaluation is centered around five research questions: language modularity, notational freedom and projectional editing, mechanisms for managing complexity, performance and scalability issues and the consequences for the development process. We draw generally positive conclusions; language engineering with MPS is ready for real-world use. However, we also identify a number of areas for improvement in the state of the art in language engineering in general, and in MPS in particular.
Original languageEnglish
Pages (from-to)585-630
Number of pages46
JournalSoftware and Systems Modeling
Issue number1
Publication statusPublished - 2019


  • Language engineering
  • Language extension
  • Language workbenches
  • Domain-specific language
  • Case study
  • Languages
  • Experimentation


Dive into the research topics of 'Lessons learned from developing mbeddr: a case study in language engineering with MPS'. Together they form a unique fingerprint.

Cite this