Historically, ATL imports two libraries : ANTLR and MDR. Those libraries are not authorized in Eclipse because of their non-EPL license. Consequently, ATL imposes users to download those libraries by themselves and install them into Eclipse plugin folder. Today, ATL dependencies have been strongly reduced : ATL only needs ANTLR-runtime library, which is EPL and included into ATL source code. The MDR library is only necessary for the MDR Model Handler. According to the fact that most of people uses EMF Model Handler (which seems to be more powerful), MDR Model Handler has been separated into a single feature, which is not natively required for ATL.
TCS (Textual Concrete Syntax), a tool for parsing and extraction, is used to generate some ATL components (e.g. ATL-Parser). Unlike ATL, TCS uses both ANTLR library, in version 2 and newly in version 3. TCS is available on GMT Eclipse subsection. ATL doesn't have any dependency with TCS. Specific injectors depend on ANTLR too. But an other solution can be implemented using third party tools like Safari (http://www.eclipsecon.org/2007/index.php?page=sub/&id=3759). TGE, Textual Generic Editor, is an other GMT tool, which generates an Eclipse editor from a KM3 and a TCS file. Notice that ATL Editor is not generated with GMT in order to avoid the dependencies between GMT and M2M.
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.