Language Workbenches, as defined originally by Martin Fowler, are tools aiming to cope with DSL creation and code generation to increase the level of abstraction of software development [credit to Pedro J. Molina for the reference].The Language Workbench Competition at Code Generation 2011 aimed at gathering and comparing the features of different workbenches available today, through a small challenge based on a set of requirements.
Then, the challenge was summarized in the Code Generation main event. Here is a quick writeup of the presentations of two good representatives of the presented tools, not focusing on the performance within the challenge but more oriented to giving an overview to the field (especially for novices).
The complete list of submitters includes:
- Xtext, resources here
- MPS, resources here
- MetaEdit+, resources here.
- EMFText/JaMoPP, resources here
- OOMEGA, resources here
- Whole Platform, resources here
- Essential, resources here
- Spoofax, resources here
- Intentional, resources here
- Rascal, resources here
- Atom3, resources here
- Obeo Designer, resources here
- Cedalion, resources here and here
Among the above, I could only attend the summary of the two contributions from OOMEGA and Intentional:
Intentional Domain Workbench (http://intentsoft.com/), presented by Mats Helander
It’s a projectional editor, not a text-based tool (i.e., based on a parser). It’s instead based on a tree representation of the languages, which is then reshaped based on projections.
References are not name-based but node-based instead. Every node has an ID and you reference them. So, if you change a name of a class, you get automatic updates in the referenced objects.
The specification is based on an extension of C#, extended with some DSLs.
You can get textual or graphical projections, and also document-like projections; you can mix different notations.
This allows involvement of non-technical, business users too
You also get for free code-completion-like features.
The technical paper presenting the solution to the challenge is available here.
To keep updated on my activities you can subscribe to the RSS feed of my blog or follow my twitter account (@MarcoBrambi).
2 thoughts on “Highlights from LWC 2011: Language Workbench Competition 2011 (co-located with Code Generation 2011)”
As a premium resource, Johan den Haan also published a much more comprehensive summary of the LWC 2011 workshop here:
Marco, thanks for summarizing the summary session we had on Thursday.
One thing should be clarified though. As we stated on Tuesday, the competitoin had no winners (nor loosers). In that sense, I have to add here that OOMEGA and Intentionals were not selected per se, they should instead be thanked for helping the organisers of CG2011 and LWC11 to fill an empty slot in the programme (the planned speakers were not able to fly in due to the Icelandic ash cloud).