TY - JOUR
T1 - Lessons learned from developing mbeddr
T2 - a case study in language engineering with MPS
AU - Völter, Markus
AU - Kolb, Bernd
AU - Szabó, Tamás
AU - Ratiu, Daniel
AU - van Deursen, Arie
PY - 2019
Y1 - 2019
N2 - 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.
AB - 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.
KW - Language engineering
KW - Language extension
KW - Language workbenches
KW - Domain-specific language
KW - Case study
KW - Languages
KW - Experimentation
UR - http://www.scopus.com/inward/record.url?scp=85008668722&partnerID=8YFLogxK
U2 - 10.1007/s10270-016-0575-4
DO - 10.1007/s10270-016-0575-4
M3 - Article
VL - 18
SP - 585
EP - 630
JO - Software and Systems Modeling
JF - Software and Systems Modeling
SN - 1619-1366
IS - 1
ER -