Software is increasingly developed with domain experts. These need domain-specific languages (DSLs) to bridge the conceptual gap between the problem space of their experience and the solution space of software engineering. Developing new DSLs still is prohibitively complex due to the lack of concepts for constituent-complete reuse and customisation of DSLs that abstract from specific technological spaces. Current research in software language engineering either focuses on partial solutions for DSL reuse (e.g., syntax reuse only), is tied to specific technological spaces, or too abstract to support engineering reusable languages. We will conceive a novel method for the systematic reuse of textual, external DSLs with translational behaviour (txtDSLs) that leverages arranging txtDSLs in language families. Basis of these families are composable components with explicit interfaces describing their possibilities for variation and customisation. The core of this method will be an extensible model for txtDSL families over components with explicit interfaces and a composition operator defining the composition of such txtDSL components. With these, we will conceive txtDSL reuse independent of technological spaces. We will evaluate the viability of this method through a modelling demonstrator that reifies its cross-cutting concepts to support language engineers of different technological spaces. Overall, our concept for Systematic Component-Oriented Language Reuse (SCOLAR) of txtDSLs captures their variability and customisability to facilitate their reuse in different contexts. This enables unprecedented, systematic, and constituent-complete reuse of txtDSLs and txtDSL parts from which language engineers and domain experts can greatly benefit.
Our main objective is devising a viable, precise, and systematic understanding of efficiently engineering txtDSLs with reusable language components. To this effect, we will conceive a novel method for txtDSL reuse that captures the different definition constituents of txtDSLs, including CS, AS, WFR, and TR as well as their different kinds of variation and customisation mechanisms based on our exploratory work. To achieve our objectives, we need to establish the conceptual foundations for txtDSL reuse to support DSL engineers in systematically developing reusable languages with less effort (as illustrated in Fig. 1). This facilitates deploying tailored DSLs to facilitate the multi-disciplinary engineering of complex systems with experts from various domains (e.g., mechanical engineering, jurisprudence, or medicine). To fulfil this goal, we will devise a method for txtDSL reuse that leverages language families, language components, constituents, interfaces, and their relations in a two-stage reuse process involving the resolving of language family variability into language components and their configuration to obtain complete txtDSLs. Based on these concepts and the txtDSL derivation process, we will devise suitable well-formedness constraints as well as a composition operator for language components and their artefacts that leverages composition mechanisms specific to the technological spaces for the different txtDSL constitution artefacts. We will leverage this operator to resolve the variability of language families by composing language components according to selected features. Research conducted to complete this goal will leverage our experience in language product line engineering for textual DSLs with the MontiCore language workbench and generalize beyond it. To this end, we will identify patterns of reuse and composition common to txtDSLs and leverage these in our method for txtDSL reuse. We consider this goal fulfilled if (a) our method enables explaining reuse of txtDSLs through variability and customisation independent of technological spaces and (b) its reuse concepts scale-up to complex languages.
For our method for systematic txtDSL reuse to bridge the gap between its abstractions and possible implementations, it needs to be reified in software. This supports language engineers in building better reusable languages. Therefore, we will devise a modelling demonstrator for txtDSL families, language components and their interfaces. Following our reuse method, this demonstrator can be tailored to different technological spaces and extended to express properties and operations specific to the different technological spaces in accordance with our txtDSL reuse method (cf. Fig. 2). To this end, it will comprise MontiCore DSLs that represent the elements of the SCOLAR conceptual model (e.g., language families, language components, their interfaces, etc.), well-formedness rules to check their validity, and the general workflow of resolving variability and customisability through component composition. This modelling infrastructure demonstrator builds on our expertise in software language engineering , extensible modelling infrastructures , and customisation of DSLs . We will consider this goal fulfilled if the modelling infrastructure supports applying our method to the technological spaces of Monti- Core, Neverlang, and Xtext.
This research has partly received funding from the German Research Foundation (DFG) under grant no. 441207927. The responsibility for the content of this publication is with the authors.
- Butting, A., Pfeiffer, J., Rumpe, B., & Wortmann, A. (2020). A Compositional Framework for Systematic Modeling Language Reuse. Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems, 35–-46. http://www.se-rwth.de/publications/A-Compositional-Framework-for-Systematic-Modeling-Language-Reuse.pdf
- Butting, A., Eikermann, R., Kautz, O., Rumpe, B., & Wortmann, A. (2019). Systematic Composition of Independent Language Features. Journal of Systems and Software, 152, 50--69. https://doi.org/10.1016/j.jss.2019.02.026
- Butting, A., Eikermann, R., Kautz, O., Rumpe, B., & Wortmann, A. (2018). Modeling Language Variability with Reusable Language Components. International Conference on Systems and Software Product Line (SPLC’18). http://www.se-rwth.de/publications/Modeling-Language-Variability-with-Reusable-Language-Components.pdf