MontiCore: Modular Development of Textual Domain Specific Languages
Holger Krahn, Bernhard Rumpe, Stefan V\"olkel

TL;DR
MontiCore introduces modularity principles for designing domain-specific languages (DSLs), enabling extension and composition through language inheritance and embedding, supported by tools for parsing, editing, and code generation.
Contribution
This paper presents a novel approach to modular DSL development using extended grammar formats, inheritance, and embedding, with comprehensive tool support for various language engineering tasks.
Findings
Supports language extension and composition
Provides tool-assisted parsing, editing, and code generation
Facilitates efficient development of project-specific DSLs
Abstract
Reuse is a key technique for a more efficient development and ensures the quality of the results. In object technology explicit encapsulation, interfaces, and inheritance are well known principles for independent development that enable combination and reuse of developed artifacts. In this paper we apply modularity concepts for domain specific languages (DSLs) and discuss how they help to design new languages by extending existing ones and composing fragments to new DSLs. We use an extended grammar format with appropriate tool support that avoids redefinition of existing functionalities by introducing language inheritance and embedding as first class artifacts in a DSL definition. Language embedding and inheritance is not only assisted by the parser, but also by the editor, and algorithms based on tree traversal like context checkers, pretty printers, and code generators. We demonstrate…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsModel-Driven Software Engineering Techniques · Business Process Modeling and Analysis · Advanced Software Engineering Methodologies
