Abstract Syntax Definition

The Abstract Syntax regroups the concepts of the language. If we consider natural languages, the abstract syntax would be the domain of ideas. The concepts that fill your head, but that are still unshaped, and that can't be shared or expressed without the use of words. It is thus the keystone of the language as the other components evolves around it. (The concrete syntax provide a visualization to those ideas and semantics provides a clearly defined meaning). As such, model languages consist simply of Abstract Syntax model instances on which other aspects of languages (concrete syntax and semantics) can be applied.

Ecore Support

One important note to make is that the Abstract Syntax of a Language can be obtained directly through the import of an Ecore model. It is less obvious to derive other components of a language from an ecore model as the definitions of the concrete syntax and semantics are generally too specific to the tool or to their applications to be directly derived from an existing model. If an Ecore has been used to express the Abstract Syntax of a Language, it is then possible to export instances to the XMI format.

Good Practice

It is generally a good practice to avoid including any information related to the representation or the behavior of the model in the definition of the Abstract Syntax. You might as well want to avoid using the same signature names than the one already assigned in the LightningVLM.als model in order to avoid future confusions.

Additional Support