Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[m2m-atl-dev] Feature proposal: ATL research VM with built-in composition support

Dear fellow ATL devs,

As you may have noticed by now, I've submitted a feature proposal to IPzilla
and Bugzilla. The feature concerns a new VM for ATL (EMFTVM), but also other
rule-based transformations languages, that incorporates composition (rule
inheritance, module superimposition) as an integral part. Most notable
features of EMFTVM are:

- New bytecode format that includes a notion of rules (just like Java bytecode
includes the notion of classes)
- Support for multiple rule inheritance at load-time (explicit rules allow for
late super-rule lookup)
- Support for module import with rule/helper redefinition (i.e. module
superimposition) that *combines* with rule inheritance
- Support for closures (in the form of nested code blocks), which can be used
for OCL's higher-order operations (collect, select, ...), but also ease
compilation (1 ATL expression = 1 EMFTVM code block), and open the door for
fine-grained concurrency (continuations, futures)
- Includes a lazy implementation of OCL collections
- ATL compiler written in ATL (new bytecode format is an EMF metamodel)

The reason I'd like to include EMFTVM with the ATL SDK, is to provide a
research VM in which we can try out new features. The current ATL VM
architecture makes it near impossible to change the bytecode format. EMFTVM's
bytecode format can be changed more easily: the compiler is written in ATL,
not AGC, so there is no hard dependency on the bytecode format. Also, the
intention is to have only *one* implementation of the EMFTVM bytecode format.

ATL features tested out on EMFTVM in this way can later be included in the
mainstraim compilers/VMs (e.g. multiple rule inheritance, closures, lazy
collections). Other features rely on a change in the bytecode format (e.g.
late super-rule lookup), and cannot be ported to the mainstraim VMs.

CAN YOU GUYS take a look at the IPzilla entry
(https://dev.eclipse.org/ipzilla/show_bug.cgi?id=5171) and mark the
*PMC_Approved* flag if you agree that EMFTVM should be included with ATL?
Thanks already!

Kind regards,
Dennis Wagelaar


Back to the top