ATL language which can be split into two parts : declarative : matched rules, and called rules body. The main use of ATL is declarative. Imperative part should only be used in specific cases. imperative : called rules (imperatively called), and action blocks (« do », usable in any rules) ATL VM is intercalated between the ATL compiler and the used frameworks (EMF, MDR), allowing modularity. Consequently, changes on ATL Language only involve ATL compiler. The following schema describes ATL components and their role during the execution of a transformation.