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 < - a.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.