MontiCore: efficient development of composed modeling language essentials
Autoři
Více o knize
Model-driven engineering exploits models as first-class artifacts to tackle the complexity and heterogeneity of large software systems. Such models can be built with domain-specific languages (DSLs) that enable higher-levels of abstraction. In textual, grammar-based languages, an abstract syntax tree (AST) technically represents the model within a tool and thus serves as the central artifact for model processing. Deriving the AST directly from the grammar keeps it consistent with the concrete syntax but leads to two drawbacks: First, since the AST does not necessarily provide a model's essential information in a straightforward manner, this complexity can hamper the development of tools processing that model. Second, even small grammar changes can affect the AST that, in turn, may require dependent tools to be updated. Moreover, since heterogeneous languages are typically required to specify different aspects of a software system, another problem is that models of those languages first have to be integrated before they can be analyzed and synthesized together. Therefore, each model has to have an interface to enable composition with other models. Again, the AST does not explicitly exhibit a model's interface. This dissertation aims to promote the development of an additional structure (called ST) which captures (i) information that is essential for processing models of a language as well as (ii) a language's interface to enable composition of models of both the same language and heterogeneous languages. Unlike the (generated) AST, the ST can also contain information that is not directly defined in the model but related to it. Tools can employ the ST together with the AST to access the relevant information as needed, which facilitates model processing.