Towards Automated Support for the Co-Evolution of Meta-Models and Grammars
Weixing Zhang
TL;DR
This licentiate introduces GrammarOptimizer and a meta-model-based workflow to co-evolve meta-models and grammars for textual DSLs in blended modeling settings. It surveys the state of the art, extends Xtext with generator extensions, proposes Python-style grammar prototyping, and then generalizes a set of grammar optimization rules into GrammarOptimizer. Across seven DSLs and two evolution scenarios, the approach demonstrates substantial imitation of expert grammars and effective adaptation across evolving meta-models, reducing manual rework during rapid prototyping. The work advances blended modeling by enabling rapid, semi-automatic grammar evolution while maintaining language usability, with practical impact for tool builders and researchers seeking robust DSL engineering pipelines.
Abstract
Blended modeling is an emerging paradigm involving seamless interaction between multiple notations for the same underlying modeling language. We focus on a model-driven engineering (MDE) approach based on meta-models to develop textual languages to improve the blended modeling capabilities of modeling tools. In this thesis, we propose an approach that can support the co-evolution of meta-models and grammars as language engineers develop textual languages in a meta-model-based MDE setting. Firstly, we comprehensively report on the challenges and limitations of modeling tools that support blended modeling, as well as opportunities to improve them. Second, we demonstrate how language engineers can extend Xtext's generator capabilities according to their needs. Third, we propose a semi-automatic method to transform a language with a generated grammar into a Python-style language. Finally, we provide a solution (i.e., GrammarOptimizer) that can support rapid prototyping of languages in different styles and the co-evolution of meta-models and grammars of evolving languages.
