ATL, the Atlas Transformation Language, is the ATLAS INRIA & LINA research group’s answer to the OMG MOF /QVT RFP . It is a model transformation language specified as both a metamodel and a textual concrete syntax. In the field of Model-Driven Engineering (MDE), ATL provides developers with a mean to specify the way to produce a number of target models from a set of source models.
The ATL language is a hybrid of declarative and imperative programming. The preferred style of transformation writing is the declarative one: it enables to simply express mappings between the source and target model elements. However, ATL also provides imperative constructs in order to ease the specification of mappings that can hardy be expressed declaratively.
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. Besides basic model transformations, ATL defines an additional model querying facility that enables to specify requests onto models. ATL also allows code factorization through the definition of ATL libraries.
Developed over the Eclipse platform, the ATL Integrated Development Environment (IDE)  provides a number of standard development tools (syntax highlighting, debugger, etc.) that aim to ease the design of ATL transformations. The ATL development environment also offers a number of additional facilities dedicated to models and metamodels handling. These features include a simple textual notation dedicated to the specification of metamodels, but also a number of standard bridges between common textual syntaxes and their corresponding model representations.
The present manual aims at providing both an exhaustive reference of the ATL transformation language and a comprehensive guide for the users of the ATL IDE. For this purpose, this manual is organized in three main parts: the first part (Section 2 and Section 3) introduces the main concepts of model transformation and provides an overview of the structure and the semantics of the ATL language. The second part (corresponding to Section 4) focuses on the description of the ATL language while the last part (Section 5) deals with the use of the ATL tools.
The detailed structure of the document looks as follows:
- Section 2 provides a short introduction to the model transformation area;
- Section 3 offers an overview of the ATL capabilities;
- Section 4 is dedicated to the description of the ATL language;
- Section 5 describes the IDE that has been developed around the ATL transformation language;
- Section 6 provides ATL programmers with a number of pointers to available ATL resources;
- Finally, Section 7 concludes the document.