Action Patterns for the Incremental Specification of the Execution Semantics of Visual Languages Paolo Bottoni Dip. Informatica Universit` a La Sapienza Rome, Italy bottoni@di.uniroma1.it Juan de Lara Escuela Polit´ ecnica Superior Universidad Aut´ onoma Madrid, Spain jdelara@uam.es Esther Guerra Dep. Ingenier´ ıa Inform´ atica Universidad Carlos III Madrid, Spain eguerra@inf.uc3m.es Abstract We present a new approach – based on graph transfor- mation – to incremental specification of the operational (ex- ecution) semantics of visual languages. The approach com- bines editing rules with two meta-models: one to define the concrete syntax and one for the static semantics. We intro- duce the notion of action patterns, defining basic actions (e.g. consuming or producing a token in transition-based semantics), in a way similar to graph transformation rules. The application of action patterns to a static semantics edit- ing rule produces a meta-rule, to be paired with the firing of the corresponding syntactic rule to incrementally build an execution rule. An execution rule is thus tailored to any ac- tive element (e.g. a transition in a Petri net model) in the model. Examples from Petri nets, state automata and work- flow languages illustrate these ideas . Keywords: Meta-Modelling, Visual Languages, Graph Transformation, Operational Semantics. 1. Introduction The design of Domain Specific Visual Languages (DSVLs) implies the definition of their syntax, usually de- rived from the notations in use in the domain community, as well as of their static and dynamic semantics [9]. Dif- ferent approaches can be used, with varying levels of integration and incrementality between construction of syn- tactic sentences and interpretation in terms of abstract syntax, or static semantics. Two main approaches are currently employed to this aim, the grammatical and the meta-modelling one. The for- mer exploits rewriting rules either to parse sentences and construct their interpretation [6, 16] or to define creation grammars, giving rise to syntax-directed editors. These al- low some incrementality in the construction of abstract syn- taxes, on which to build the semantic interpretation [16]. In some cases, different grammars are used for the incremen- tal construction of a sentence and its subsequent parsing [1]. Triple Graph Grammars were proposed as a way to main- tain forms of coordination between concrete and abstract syntax, favoring their incremental construction [20]. Using meta-models, elements of concrete and abstract syntaxes are defined as instances of abstract concepts and constraints on their possible relations are given. The same mechanisms are used to define the semantic roles that ele- ments can play. Designers of new languages can thus map different concrete syntaxes to a common abstract one, given as a meta-model, and reuse significant parts of a language definition, in particular through inheritance [7, 4, 9, 14]. The definition of the dynamic semantics to be associ- ated with a sentence – i.e. the type of domain-related pro- cess to be simulated with it – has in many cases to be carried out by hand and from scratch, as one has typically to con- sider different aspects, which may be arbitrarily complex. In particular, a designer has to define pre-conditions and trig- gers for a process transformation to take place, the types of resources it produces and consumes, and the functions for updating the associated values. Moreover, the dynamics to be modelled may refer not only to transformations of indi- vidual elements, but also to forms of coordination between them, to message exchange, diffusion of substances into a common environment, or to balances of forces [18]. In previous works, we introduced the notion of seman- tic variety, as expressed through a meta-model where the roles are identified that syntactic elements can play in a pro- cess [3], and followed in the line of the use of triple graph grammars as a way to couple syntactic and semantic roles [5]. In particular, we have proposed the use of triple pat- terns which allow the language designer to generate oper- ational triple rules, simply starting from the definition of syntactic rules, once the correspondence between syntax el- ements and (static) semantic roles is established [8]. In this paper, we introduce the new notion of action pat- tern in order to generate execution semantics graph rewrit-