Title
Revisiting Visitors for Modular Extension of Executable DSMLs
Abstract
Executable Domain-Specific Modeling Languages (xDSMLs) are typically defined by metamodels that specify their abstract syntax, and model interpreters or compilers that define their execution semantics. To face the proliferation of xDSMLs in many domains, it is important to provide language engineering facilities for opportunistic reuse, extension, and customization of existing xDSMLs to ease the definition of new ones. Current approaches to language reuse either require to anticipate reuse, make use of advanced features that are not widely available in programming languages, or are not directly applicable to metamodel-based xDSMLs. In this paper, we propose a new language implementation pattern, named Revisitor, that enables independent extensibility of the syntax and semantics of metamodel-based xDSMLs with incremental compilation and without anticipation. We seamlessly implement our approach alongside the compilation chain of the Eclipse Modeling Framework, thereby demonstrating that it is directly and broadly applicable in various modeling environments. We show how it can be employed to incrementally extend both the syntax and semantics of the fUML language without requiring anticipation or re-compilation of existing code, and with acceptable performance penalty compared to classical handmade visitors.
Year
DOI
Venue
2017
10.1109/MODELS.2017.23
2017 ACM/IEEE 20th International Conference on Model Driven Engineering Languages and Systems (MODELS)
Keywords
Field
DocType
extensible language,interpreter,visitor,revisitor,model-driven engineering,software language engineering
Programming language,Software engineering,Systems engineering,Computer science,Model-driven architecture,Reuse,Modeling language,Compiler,Abstract syntax,Semantics,Metamodeling,Executable
Conference
ISBN
Citations 
PageRank 
978-1-5386-3493-6
4
0.38
References 
Authors
19
5
Name
Order
Citations
PageRank
Manuel Leduc1101.46
Thomas Degueule2183.05
Benoît Combemale342346.61
Tijs van der Storm442437.18
Olivier Barais572461.99