| ATLAS Transformation Language | |
|---|---|
| Developers | OBEO,INRIA Free software community |
| Stable release | |
| Written in | Java,Assembly |
| Operating system | Cross-platform |
| License | Eclipse Public License |
| Website | www |
| Repository | github |

ATL (ATLAS Transformation Language) is a model transformation language and toolkit developed and maintained by OBEO and AtlanMod. It was initiated by the AtlanMod team (previously called ATLAS Group). In the field of Model-Driven Engineering (MDE), ATL provides ways to produce a set of target models from a set of source models.
Released under the terms of theEclipse Public License, ATL is anM2M (Eclipse) component, inside of theEclipse Modeling Project (EMP).
ATL is amodel transformation language (MTL) developed by OBEO andINRIA to answer theQVT Request For Proposal. QVT is anObject Management Group standard for performingmodel transformations. It can be used to do syntactic orsemantic translation. ATL is built on top of a model transformationVirtual 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 initialize the elements of the target models.
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 features execution semantics in terms of simple instructions: basic actions on models (elements creations and properties assignments).

An ATL program (T1.atl here) will take modelMa.xmi as input and will produce modelMb.xmi as output. Both models may be expressed in the OMGXMI standard. Themodel Ma conforms tometamodelMMa.km3. Model Mb conforms to metamodelMMb.km3. TheKM3 notation is a simple and neutral metamodel specification language.
The ATL program itself (T1.atl here) is also a model, so it conforms to a metamodel (the ATL metamodel) not presented here.
An ATL program is composed of a header, of a set ofside-effect free functions calledhelpers and of a set ofrules.
There is an associated ATL Development Toolkitplugin available in open source from the ATL[2]Eclipse Modeling Project (EMP) that implements the ATL transformation language which is inspired by theMOF Query/View/Transformation languageQVT.[3] A large library of transformations is available.[4] MOF QVT is aDomain Specific Language for Model Transformation. It supports models conforming to Ecore, EMOF,KM3 (a specificDomain Specific Language for metamodel specification), etc. ATL is also running on MDR/NetBeans.