ATL Subproject    

ATLAS Model Language Transformation

 Overview

The ATL project aims at providing a set of transformation tools for GMT. These include some sample ATL transformations, an ATL transformation engine, and an IDE for ATL (ADT: ATL Development Tools).

ATL discussion occurs on Yahoo group: atl_discussion

The ATL home page

 Quick Navigator
Back to GMT main page
ATL Subproject:
Documentation
ATL Transformations
ATL Publications
Download
FAQ
Bugzilla
All Open
Recently closed
Mailing List
Archives
Send Message (Only members can post)
Request to join ATL discussion
CVS
 What's New
Dec 7th 2005  -  An ATL starter's guide has been written and may be found here.
Dec 1st 2005  -  A new ATL installation guide has been written and may be found here.
Nov 28th 2005  -  New ATL transformation examples, UML CopyModel, ModelCopy, UML ModelMerge, MergeModel, UML AssociationAttributes, Java2AssociationAttributes, UML Accessors, Java2Accessors, UML Observer, JavaObserver, UML Singleton, UML Applet, MIDlet, UML DataTypes, Java2DataTypes and UML AsyncMethods , are now available on the ATL Transformations page. These contributions were made by Dennis Wagelaar.
Nov 28th 2005  -  New ATL transformation examples, ATL to Tracer, ATL to BindingDebugger, KM3 to ATL Copier and Simple Class to Simple RDBMS, are now available on the ATL Transformations page.
Nov 24th 2005  -  A new ATL transformation example, Public to Private, is now available on the ATL Transformations page.
Nov 14th 2005  -  Creation of a publications section.
Nov 2nd 2005  -  A new ATL transformation example, MySQL to KM3, is now available on the ATL documentation page.
Oct 26th 2005  -  A new ATL transformation example, the DSL-EMF bridge, is now available on the ATL documentation page.
Oct 18th 2005  -  A new ATL transformation example, ATL to Problem, is now available on the ATL documentation page.
Sep 26th 2005  -  A new couple of ATL transformations, UML to MOF and MOF to UML, is now available on the ATL documentation page.
Sep 22nd 2005  -  A new ATL transformation example, KM3 to Metrics, is now available on the ATL documentation page.
Sep 16t 2005  -  Source code of ATL virtual machine is now available on GMT web site. Three new plugins have been added (vm, mdr4atl, emf4atl). Due to these new plugins, there are some modifications in installation process. This is explained here.
Sep 1st 2005  -  A new ATL plugin is available: Mgm. It manages projectors (injectors and extractors). Initially, only XMLInjector, ATLInjector and XMLExtractor are available (more details). It is available in last release (see download section).

...
Archive section
 ATL Presentation

Warning, this presentation is old and will be updated soon

The ATL project aims at providing a set of transformation tools for GMT. These include a transformations repository, some sample ATL transformations, an ATL transformation editor plug-in, an ATL transformation engine, etc.

The Atlas Transformation Language (ATL) is being developed by the ATLAS team, INRIA. It is a hybrid language (a mix of declarative and imperative constructions) designed to express model transformations as required by any MDA approach (see the QVT RFP). It is described by an abstract syntax (a MOF meta-model), a textual concrete syntax and an additional graphical notation allowing modelers to represent partial views of transformation models. A transformation model in ATL is expressed as a set of transformation rules. The recommended style of programming is declarative. Transformations from Platform Independent Models (PIMs) to Platform Specific Models (PSMs) can be written in ATL to implement the MDA™ approach as suggested by the OMG.

For the time being, a prototype engine is running with minimal functionalities. It implements ATL v0.1 language (declarative part). The next version (ATL v0.2) of the engine that will be ported to Eclipse will integrate both declarative and imperative styles of transformation.

Eclipse is going to be used as an IDE for ATL, with advanced code edition features (syntax highlighting, auto-completion, etc.). ATL will provide a context in which transformation-based MDA tools can be designed and implemented for Eclipse.

The ATL project will progressively provide a complete environment for developing, testing and using model transformation programs through the following items:

  • A transformation repository supporting the creation of a library of transformations ranging from simple examples to fully reusable components. A prototype repository (RAS-like) already exists that stores transformation components in compressed archives (ZIP files) including a meta-data description in the form of an XML file (contents.xml). Components can be: transformations (written in ATL, written in another language or composite transformations using others), meta-models (a transformation depends on the transformation meta-model, the input and output meta-models) and models (input/output samples).

  • A source code editor for transformations adapted from the Eclipse source code editor. Several levels of implementation are possible, from a simple text editor to a full-featured one (including syntax highlighting, auto-completion, etc.). Users will be able to launch transformations from the IDE, which could interpret error messages and use them to point out the problems to the modeler.

  • A debugger will also be integrated, in order to complete the Eclipse IDE for ATL.

  • And finally a transformation engine (for ATL v0.2) will be released as part of the GMT project.

The objective is to complete these tasks by the end of 2004. A higher level of integration of ATL into Eclipse will be achieved later by adding the possibility to use EMF as a meta-meta-model for ATL transformations. Further than the IDE for ATL, this last step is aimed at building a fully integrated MDA tool on top of Eclipse. The execution engine would then use the Eclipse EMF repository and thus be able to transform models created within the EMF.Edit framework.

Although the QVT RFP asks for a transformation language for MOF models, we think that making other meta-meta-models usable, provided they are semantically close enough to MOF, would add considerable value to a transformation language. This meta-meta-model independence would even be very interesting among OMG standards, MOF 2.0 being different from MOF 1.4.

Finally, the ATL framework also integrates the notion of "technological spaces". Although mainly intended to deal with MDA models (based on MOF meta-models and accessible via XMI or JMI), this framework should also handle other kinds of models from different technological spaces (e.g. Java programs, XML documents, DBMS artifacts, etc.). To this end, what we need is a collection of adaptable "injectors" and "extractors" to complement the library of MDA transformation components. Models, meta-models, transformations, injectors and extractors are examples of MDA components that will be handled as uniformly as possible by the ATL repository.