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.