The JustAdd approach illustrates a solution based on the “grammarware technical space”, specifically Reference Attribute Grammars. The approach is interesting as it performs the transformation using synthetized attributes.
A good point is that the translation from the metamodels to the grammar seems straightforward (as the grammar language has an object oriented flavor). The use of “grammar aspects” is also interesting as it allows modularly specifying the relationships between the input/output metamodels.
Without knowledge of the tool, the concept of nonterminal attributes (NTAs) is however difficult to understand: at first sight the declaration of the attribute looks like imperative code with recursion; this is unlike other synthetized attributes that are more equational. So, one can wonder: what is the added value compared to writing code in plain java that just navigates the AST, or the EMF model directly for that matter? Is there some form of evaluation optimization? Are there provable guarantees (for instance, termination)?
Overall the approach is compelling, but, what will be for the authors the unbeatable argument that will make me prefer this solution over the others?
The JustAdd approach illustrates a solution based on the “grammarware technical space”, specifically Reference Attribute Grammars. The approach is interesting as it performs the transformation using synthetized attributes.
A good point is that the translation from the metamodels to the grammar seems straightforward (as the grammar language has an object oriented flavor). The use of “grammar aspects” is also interesting as it allows modularly specifying the relationships between the input/output metamodels.
Without knowledge of the tool, the concept of nonterminal attributes (NTAs) is however difficult to understand: at first sight the declaration of the attribute looks like imperative code with recursion; this is unlike other synthetized attributes that are more equational. So, one can wonder: what is the added value compared to writing code in plain java that just navigates the AST, or the EMF model directly for that matter? Is there some form of evaluation optimization? Are there provable guarantees (for instance, termination)?
Overall the approach is compelling, but, what will be for the authors the unbeatable argument that will make me prefer this solution over the others?