There are two composition mechanisms in ATL that have evolved separately, and therefore are not well-aligned. These are rule inheritance and module superimposition. Both of these composition mechanisms had different goals in mind: rule inheritance aims to increase reuse at the rule level, as well as optimise the performance of the matching process, while module superimposition aims to increase reuse at the module level, and allows for incremental compilation whenever a single module changes. To achieve these goals, rule inheritance was in-lined at compile-time, while superimposed modules were composed at load-time. As a result, rule inheritance is limited to single modules, while module superimposition rule overriding does not work well on rule inheritance hierarchies. This paper aims to reconcile the two composition mechanisms by defining both at load-time/run-time, while respecting the original goals. In addition, rule inheritance is extended from single to multiple inheritance.
[1]
Ragnhild Van Der Straeten,et al.
Module superimposition: a composition technique for rule-based model transformation languages
,
2010,
Software & Systems Modeling.
[2]
Andy Schürr,et al.
Specification of Graph Translators with Triple Graph Grammars
,
1994,
WG.
[3]
Adolfo Sánchez-Barbudo,et al.
Providing an open Virtual-Machine-based QVT implementation
,
2008
.
[4]
Richard F. Paige,et al.
The Epsilon Transformation Language
,
2008,
ICMT@TOOLS.
[5]
Frédéric Jouault,et al.
Rule-based modularization in model transformation languages illustrated with ATL
,
2007,
Sci. Comput. Program..
[6]
Gerti Kappel,et al.
A Comparison of Rule Inheritance in Model-to-Model Transformation Languages
,
2011,
ICMT@TOOLS.
[7]
Dennis Wagelaar,et al.
Advanced Traceability for ATL
,
2009
.