Title: Cours
1 Model transformation with ATL The ATLAS
Transformation Language ATLAS group (INRIA
LINA), University of Nantes, France http//www.sci
ences.univ-nantes.fr/lina/atl/
2Contents
- The ATLAS Transformation Language (ATL)
- Model Transformation
- Model Transformation with ATL
- Declarative ATL
- Imperative ATL
- The ATL Execution Engine Architecture
- Concepts
- Advantages
- ATL Virtual Machine Architecture
- ATL Development Tools (ADT)
3Contents
- The ATLAS Transformation Language (ATL)
- Model Transformation
- Model Transformation with ATL
- Declarative ATL
- Imperative ATL
- The ATL Execution Engine Architecture
- Concepts
- Advantages
- ATL Virtual Machine Architecture
- ATL Development Tools (ADT)
4Model transformation
- Each model conforms to a metamodel.
- A transformation builds a target model (Mb, here)
from a source model (Ma, here). - A transformation is a model (Mt, here) conforming
to a metamodel (MMt here).
conformsTo
transformation
5Model transformation with ATL(ATLAS
Transformation Language)
- A declarative language to specify simple
transformation patterns simply - With imperative constructs to make sure complex
patterns can always be specified
conformsTo
transformation
6Declarative ATL
- A declarative transformation rule is matched
against a source pattern - For each match, the rule is executed its target
pattern is created - There are few constraints on ordering because
navigation on target models is prohibited. - The following elements can appear in any order
- Transformation rules
- Elements of target patterns
- Property initialization in target pattern
elements - There are three kinds of matched rules
- Standard rules are executed once per match
- Lazy rules are executed each time their source
pattern is referenced from another rule
(especially useful for tree traversal) - Unique lazy rules are executed at most once and
only if their source pattern is referenced at
least once
7Imperative ATL
- Imperative rules are called they have parameters
instead of a source pattern ( procedures) - They can have a target pattern instead of
imperative code - There can be one entrypoint and one endpoint
called rules, executed before and after
declarative rules (a la awk) - Imperative blocks
- Are composed of statements
- Can appear in both matched and called rules
8Contents
- The ATLAS Transformation Language (ATL)
- Model Transformation
- Model Transformation with ATL
- Declarative ATL
- Imperative ATL
- The ATL Execution Engine Architecture
- Concepts
- Advantages
- ATL Virtual Machine Architecture
- ATL Development Tools (ADT)
9The ATL Execution Engine Architecture concepts
- ATL is specified as a two-part metamodel
- The structural part defines rules, source and
target patterns, imperative blocks, etc. - The navigation part is based on OCL 2.0
- A textual concrete syntax is specified using TCS
- Text ATL can be parsed to its corresponding model
- An ATL model can be serialized to text
- ATL transformations are models which specify
operations on models - They can be loaded and serialized by model
handlers (EMF, MDR, etc.) or projectors - They drive the execution of operations on other
models performed using model handlers - An ATL model can be executed
- It is first compiled to ATL bytecode a
model-oriented instruction set - The ATL Virtual Machine executes this bytecode
10The ATL Execution Engine Architecture advantages
- Different model handlers can be used to deal with
basic model operations (XMI loading and
unloading, element creation and deletion,
property assignment, etc.) - Different languages can run on top of the VM
- ATL
- ATP (ATL Tree Parser) a simple language used to
bootstrap the ATL compiler - Etc.
- Different source and target formats are supported
- XMI, using the model handlers
- Textual representation of models (using TCS)
- XML documents
- Binary files,
- Etc.
- Several ATL VM can be developed
- ATLAS ATL VM written in Java for research
- TNI ATL VM written in CAML for performance
11The ATL Virtual Machine Architecture
XMI 1.2
XMI 2.0
Text, XML, Binary, etc.
Model repository
The simplest form of a model repository is a
file system.
12Contents
- The ATLAS Transformation Language (ATL)
- Model Transformation
- Model Transformation with ATL
- Declarative ATL
- Imperative ATL
- The ATL Execution Engine Architecture
- Concepts
- Advantages
- ATL Virtual Machine Architecture
- ATL Development Tools (ADT)
13ATL Development Tools (ADT) an Eclipse-based IDE
for ATL
- ATL perspective and ATL project
- ATL Code editor
- Syntax highlighting
- Outline
- Error reporting
- ATL Builder
- ATL Debugger
- Source-level debugging
- Stepping through elementary operations
- Breakpoints support
14ATL Development Tools perspective, editor and
outline
15ATL Development Tools launch configuration
16ATL Development Tools source-level debugger
17End of the presentation
- Thanks
- Questions?
- Comments?
- AMMA_at_lina.univ-nantes.fr
- ATLAS group, INRIA LINA, Nantes