ATL Use Case - QVT to ATL Virtual Machine Compiler

ATL Logo

This work provides a QVT compiler that targets the ATL Virtual Machine (ATL VM), and thus provides executability of QVT programs on top of the ATL VM. The code generator is written in the ACG (Atl Code Generation) Domain-Specific Language (DSL). It takes as input a QVT model (typically in XMI format) that may have been created by a QVT front-end (i.e., a parser and type checker) like Eclipse/modeling/m2m/Procedural QVT, or SmartQVT. The output of the code generator is a ".asm" file similar to the ones generated by the ATL compiler, or the ACG compiler (both also written in ACG).

Keywords

OMG, QVT, Virtual Machine, VM, Compiler, Code Generator.

Overview

This work provides an implementation of one of the QVT-ATL interoperability bridges described in [1]: a QVT to ATL Virtual Machine compiler. This corresponds to the OM to VM arrow on the following figure, taken from [1].



ATL-QVT interoperability through language transformation

This use case relies on a QVT front-end (i.e., a parser and type checker) like Eclipse/modeling/m2m/Procedural QVT, or SmartQVT. This front-end generates a QVT model (typically in XMI format) from a QVT program. Then, a code generator written in the ACG (Atl Code Generation) DSL transforms this model into ATL bytecode (i.e., a ".asm" file) that can run on the ATL VM. The current version of this code generator is able to compile the Book2Publication QVT example, and has been tested using the SmartQVT front-end.

ACG is a domain-specific model transformation language. Its domain is ATL VM bytecode generation (i.e., a fixed target metamodel).

Related Use Cases

None at the current time.

References

[1] Jouault, F, and Kurtev, I: On the Architectural Alignment of ATL and QVT. In: Proceedings of the 2006 ACM Symposium on Applied Computing (SAC 06). ACM Press, Dijon, France, chapter Model transformation (MT 2006), pages 1188–1195. 2006.

Download

Complete scenario

Scenario QVT to ATL VM available in the ATL transformation zoo (with source files).

QVT metamodel

Full QVT metamodel specified in KM3.

Acknowledgement

The present work is being supported by the ModelPlex european project, the FLFS ANRT project (Families of Language for Families of Systems), the OpenEmbeDD project, and the Usine Logicielle project of the System@tic Paris Region Cluster.
General Information