Atomic Transformation Code (ATC)

Download Page

Atomic Transformation Code (ATC) and all related technology is released under the Eclipse Public License, which is available at EPL. All the resources currently available concerning the ATC implementation can be found here. Instructions to download source code for the project from a CVS repository can be found here. Implementation is based on the Eclipse IDE. Should this page be relocated, the new site will be announced in the Eclipse M2M project news. If you find anything missing, want to know more about this project, or have any questions or suggestions concerning this page and its contents please feel free to send an email to vsanchez ( at ) opencanarias (dot) es. Any comments will be greatly appreciated.

The whole contents of this page comes with absolutely no warrany whatsoever. Use at your own risk.


ATC: The ATC language plugins. This is a low-level imperative model transformation language, which can be executed by the VTE engine. Since it is of a low level of abstraction it is not expected to be programmed directly by users. Instead they should write their transformations in a higher-level language for which translation into ATC exists, such as the QVT Operational Mappings language.

VTE: The Virtual Transformation Engine is the model transformation engine meant to execute ATC instances. It provides a launcher facility to execute ATC models via a UI front-end where to select models involved in the transformation. This option can be accessed via the "Run Configurations..." button, or directly by clicking over an ATC file in any navigation view with the secondary mouse button and selecting the first option of "Run As...". ATC models can also be executed procedurally for batch execution, from Java code.

GATC: The Generative ATC language plugins. This language is used to ease the manual production of ATC transformation instances and is not necessary for their execution.

GATC2ATC: The GATC2ATC model transformation, written in ATC. Translates GATC models into their ATC counterparts so they can be effectively executed. Without this model transformation, GATC is essentially useless.

Generic QVT Trace Metamodel: In order to simplify the infrastructure support for QVT, a single, generic trace metamodel for QVT has been developed. This eliminates the need of having to maintain specific sets of trace metaclasses, one set for each QVT transformation instance. Defining model transformation conversions between this notation and MOF trace instances should be straightforward.

QVT2ATC: A model transformation written in (G)ATC that translates QVT models into their ATC equivalents ready for execution. Only the QVT Operational Mappings version is currently provided. This also includes OCL2ATC. Translation is in a very advanced state, although not all the features of the language are supported. Support for the QVT Core language is finished, and expected to be published shortly. Support for the QVT Relations language is planned via translation into QVT Core. Since this QVT2ATC model transformation operates on models, a tool that generates these from textual notation (or means to produce them alternatively, i.e. by hand-editting them) is required. Also their metamodels must be registered locally in the VTE engine or, preferably, in the global EMF Package Registry. This also includes the QVT Standard Library model and the OCL metamodels, which again includes the OCL Standard Library. Please check, for instance, the OCL project, and M2M the "QVT" section. Only the official QVT metamodels of the Eclipse platform are supported by the QVT2ATC model transformation. This mainly concerns the namespace URIs that the metamodel packages use in their definition. Such metamodels are OMG-compliant and can be found on the CVS of the official QVT projects. The QVT Operational Mappings to ATC model transformation also depends on the Generic QVT Trace Metamodel.


The current ATC infrastructure implementation has been tested with:

Eclipse SDK Helios 3.6.x
EMF 2.6.x
Java 5

It should also work with Eclipse 3.4 and 3.5. Due to dependences with the OCL language, it is no longer safe to regenerate the ATC and GATC model, edit and editor plugins via .genmodel. Nevertheless, it is not difficult to restore compilation errors that arise as a consequence of that.


ATC language plugins v1.0  2011-APR-08
VTE Engine and ATC Launcher plugins v1.0  2011-APR-08
All-in-one, ATC language and VTE Engine with Launcher plugins v1.0  2011-APR-08
GATC language plugins v0.8  2011-APR-08
GATC2ATC model transformation v0.8  2011-APR-08
Generic QVT Trace Metamodel v1.0  2009-JUL-17
QVTo2ATC model transformation v0.8  2009-JUL-16
ATC User Guide v0.8    2008-JUN-23

Coming Soon

A package with all this technology integrated with the most up-to-date Eclipse release is pending.

Aside from that, there is not much left that has not been published. ATC model examples will be published separately in this page some time in the near future. Also, the ATC user guide needs to be updated with the inclusion of a detailed description of each language instruction (atom), and more usage examples.

Copyright © 2008-2011 Open Canarias All rights reserved.