Treffer: Revisiting Visitors for Modular Extension of Executable DSMLs

Title:
Revisiting Visitors for Modular Extension of Executable DSMLs
Contributors:
Diversity-centric Software Engineering (DiverSe), Centre Inria de l'Université de Rennes, Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria)-LANGAGE ET GÉNIE LOGICIEL (IRISA-D4), Institut de Recherche en Informatique et Systèmes Aléatoires (IRISA), Université de Rennes (UR)-Institut National des Sciences Appliquées - Rennes (INSA Rennes), Institut National des Sciences Appliquées (INSA)-Institut National des Sciences Appliquées (INSA)-Université de Bretagne Sud (UBS)-École normale supérieure - Rennes (ENS Rennes)-Institut National de Recherche en Informatique et en Automatique (Inria)-CentraleSupélec-Centre National de la Recherche Scientifique (CNRS)-IMT Atlantique (IMT Atlantique), Institut Mines-Télécom [Paris] (IMT)-Institut Mines-Télécom [Paris] (IMT)-Université de Rennes (UR)-Institut National des Sciences Appliquées - Rennes (INSA Rennes), Institut Mines-Télécom [Paris] (IMT)-Institut Mines-Télécom [Paris] (IMT)-Institut de Recherche en Informatique et Systèmes Aléatoires (IRISA), Institut National des Sciences Appliquées (INSA)-Institut National des Sciences Appliquées (INSA)-Université de Bretagne Sud (UBS)-École normale supérieure - Rennes (ENS Rennes)-CentraleSupélec-Centre National de la Recherche Scientifique (CNRS)-IMT Atlantique (IMT Atlantique), Institut Mines-Télécom [Paris] (IMT)-Institut Mines-Télécom [Paris] (IMT), Centrum Wiskunde & Informatica (CWI), University of Groningen [Groningen], Direction Générale de l’Armement (Pôle de Recherche CYBER), ALE, European Project: 732223,CROSSMINER(2017)
Source:
2017 ACM/IEEE 20th International Conference on Model Driven Engineering Languages and Systems, Sep 2017, Austin, United States. ⟨10.1109/MODELS.2017.23⟩
Publisher Information:
CCSD, 2017.
Publication Year:
2017
Collection:
collection:UNIV-RENNES1
collection:CNRS
collection:INRIA
collection:UNIV-UBS
collection:INSA-RENNES
collection:INRIA-RENNES
collection:IRISA
collection:IRISA_SET
collection:INRIA_TEST
collection:TESTALAIN1
collection:INRIA2
collection:UR1-HAL
collection:UR1-MATH-STIC
collection:UR1-UFR-ISTIC
collection:INRIA-CWI
collection:INRIA2017
collection:TEST-UNIV-RENNES
collection:TEST-UR-CSS
collection:UNIV-RENNES
collection:INRIA-RENGRE
collection:UR1-MATH-NUM
Subject Geographic:
Original Identifier:
HAL: hal-01568169
Document Type:
Konferenz conferenceObject<br />Conference papers
Language:
English
Relation:
info:eu-repo/semantics/altIdentifier/doi/10.1109/MODELS.2017.23; info:eu-repo/grantAgreement//732223/EU/Developer-Centric Knowledge Mining from Large Open-Source Software Repositories/CROSSMINER
DOI:
10.1109/MODELS.2017.23
Rights:
info:eu-repo/semantics/OpenAccess
Accession Number:
edshal.hal.01568169v1
Database:
HAL

Weitere Informationen

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.