ATL is a model transformation language developed by OBEO and INRIA to answer the QVTRequest For Proposal. QVT is an Object Management Group standard for performing model transformations. It can be used to do syntactic or semantic translation. ATL is built on top of a model transformation Virtual Machine. ATL is the ATLAS INRIA & LINA research group answer to the OMG MOF/QVT RFP. It is a model transformation language specified both as a metamodel and as a textual concrete syntax. It is a hybrid of declarative and imperative. The preferred style of transformation writing is declarative, which means simple mappings can be expressed simply. However, imperative constructs are provided so that some mappings too complex to be declaratively handled can still be specified. An ATL transformation program is composed of rules that define how source model elements are matched and navigated to create and initializethe elements of the target models.
Architecture
A model-transformation-oriented virtual machine has been defined and implemented to provide execution support for ATL while maintaining a certain level of flexibility. As a matter of fact, ATL becomes executable simply because a specific transformation from its metamodel to the virtual machine bytecode exists. Extending ATL is therefore mainly a matter of specifying the new language featuresexecution semantics in terms of simple instructions: basic actions on models.
Example
An ATL program will take model Ma.xmi as input and will produce model Mb.xmi as output. Both models may be expressed in the OMG XMI standard. The model Ma conforms to metamodel MMa.km3. Model Mb conforms to metamodel MMb.km3. The KM3 notation is a simple and neutral metamodel specification language. The ATL program itself is also a model, so it conforms to a metamodel not presented here. An ATL program is composed of a header, of a set of side-effect free functions called helpers and of a set of rules.
Implementations
There is an associated ATL Development Toolkit plugin available in open source from the ATL Eclipse Modeling Project that implements the ATL transformation language which is inspired by the MOF Query/View/Transformation language QVT. A large library of transformations is available. MOF QVT is a Domain Specific Language for Model Transformation. It supports models conforming to Ecore, EMOF, KM3, etc. ATL is also running on MDR/NetBeans.