Lessons learned from developing mbeddr

a case study in language engineering with MPS

Journal Article (2019)
Department
Software Technology
Copyright
© 2019 Markus Völter, Bernd Kolb, T. Szabo, Daniel Ratiu, A. van Deursen
DOI related publication
https://doi.org/10.1007/s10270-016-0575-4
More Info
expand_more
Publication Year
2019
Language
English
Copyright
© 2019 Markus Völter, Bernd Kolb, T. Szabo, Daniel Ratiu, A. van Deursen
Department
Software Technology
Issue number
1
Volume number
18
Pages (from-to)
585-630
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

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.

Files

TUD_SERG_2016_025.pdf
(pdf | 1.72 Mb)
- Embargo expired in 01-03-2019
License info not available