Dienstag, 12.07.2022, 9.00 Uhr

Systematic Composition of Language Components in MontiCore



In model-driven development (MDD), models are central software engineering artifacts. MDD is applied to various domains such as avionics, law, mechanical engineering, or robotics, in which the domain engineers are not always software engineers. To this end, modelers should specify models in a notation close to the application domain, which is achieved by employing domain-specific modeling languages (DSMLs). In complex modern software applications, different aspects of an application are modeled with numerous integrated models. The models conform to heterogeneous, integrated DSMLs that can assure consistency between the models of an application.

Ad-hoc development of DSMLs is a time-consuming and error-prone process. Systematic and "off-the-shelf" black-box reuse of DSMLs or parts of it supports engineering DSMLs faster and more reliably. In black-box reuse, unlike reuse via clone-and-own, the reused parts remain unchanged and do not result in co-existing clones. Such reuse requires language engineers to be able to integrate DSMLs through different forms of language composition. Current approaches for engineering DSMLs often rely on generic language infrastructure, which complicates compatibility checks between the infrastructures of languages that are to be composed. Approaches for modularization of DSMLs typically focus on the conceptual parts of a language rather than on their realizations.

This talk describes an approach for realizing modular language components that can be composed via their symbol tables to realize language product lines with the language workbench MontiCore. The proposed language components identify the entirety of source code artifacts that realize a DSML. The DSMLs rely on kind-typed symbol tables that assure language compatibility during language composition. Language composition via symbol tables is lightweight because language infrastructures are only loosely coupled. An approach for persisting symbol tables further decouples language infrastructures from another and increases the performance for type and consistency checking between models that conform to different DSMLs. With the approach for language product lines, language components can be composed systematically and undesired compositions can be avoided. Typed and persisted symbol tables, language components, and language product lines as presented in this talk aim to realize DSML engineering in the large.


Es laden ein: die Dozentinnen und Dozenten der Informatik