ABSTRACT

Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.2.3 Graphical Concrete Syntax: Tabular Notations . . . 28 2.2.4 Graphical Concrete Syntax: Trees . . . . . . . . . . . . . . . . . 29

2.3 Abstract Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.3.1 Abstract Syntax of Textual Languages . . . . . . . . . . . . 31 2.3.2 Abstract Syntax of Graphical Languages . . . . . . . . . . 32 2.3.3 Concrete and Abstract Syntax Relationship . . . . . . . 33

2.4 Semantics of a Modeling Language . . . . . . . . . . . . . . . . . . . . . . . . 35 2.4.1 Denotational Semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.4.2 Operational Semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

2.5 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

In this chapter we show how the use of domain-specific modelinglanguages allows us to create explicit models enabling discussion, analysis, and further processing of the models. We learn what a modeling language consists of: it comes with concrete syntax for the user, and abstract syntax for all the tools supporting the modeling language and the core mechanisms for defining meaning (semantics) of the language. We also learn to distinguish the different variants of concrete syntax and their advantages and disadvantages.