Atlas Transformation Language

The Atlas Transformation Language ( ATL short ), is a programming language for transforming models, so for fully automated model-to -model transformations.

ATL was filed by ATLAS INRIA & LINA in response to the call for a transformation language ( QVT tender ) of the Object Management Group (OMG). ATL stands as an Eclipse plug-in with an editor and debugger available.

ATL is a hybrid language, which means it combines concepts of imperative and declarative programming. To perform queries on models, OCL is used ( partly modified ). A transformation consists in ATL essentially of a set of rules that transform individual elements of the initial model elements in the target model.

A simple transformation in ATL looks like this:

Modules Book2Publication;     create OUT: Publication from IN: Book;     rule { Author       from         a: MMAuthor Author!       to         p: MMPerson person (               name < -,               surname <- a.surname               )     } In the example, an output model "IN", which conforms to a metamodel " Book" is (simplified type of model) in a model of "OUT" according to the metamodel " Publication" transferred. The listed rule Author transferred elements of the initial model of type " Author" in elements of type "person" in the target model. The attributes of the target element are assigned values ​​from the original model.