Graph grammars and operational semantics (original) (raw)

Rule-based transformation of graph rewriting rules: Towards higher-order graph grammars

Theoretical Computer Science, 2015

Higher-order functions-the ones which manipulate other functions-have a fundamental role in Computer Science, specially in areas such as functional programming and theory of computation. Graph transformation-the rule-based modification of graphs-is also an important approach used in many contexts, as for instance, the definition of syntax and semantics of visual languages and the modelling and analysis of concurrent and non-deterministic systems. Although the algebraic double-pushout (DPO) approach to graph transformation has a vast theory, it does not present a notion of higher-order transformation, i.e., transformation of graph rewriting rules themselves. Higher-order would be required, for instance, to ease the modelling of dynamic systems through graph transformation systems, and to describe model transformations that modify graph rewriting rules. The main contribution of this work is a notion of double-pushout transformation for graph rewriting rules, where the result of the rewriting is a valid graph rule. We use DPO diagrams in the category of graph spans to describe rule transformations, and negative application conditions (NACs) in the second-order rules to enforce preservation of the rule structure. We define a model named second-order graph grammars, capable of first-and secondorder derivations. Finally, we discuss alternative ways of defining second-order transformations.

Graph grammars and tree transducers

Lecture Notes in Computer Science

Regular tree grammars can be used to generate graphs, by generating expressions that denote graphs. Top-down and bottom-up tree transducers are a tool for proving properties of such graph generating tree grammars. graph languages: the HR-context-free and the VR-context-free graph languages. We give some simple examples.

Improving the graph grammar parser of Rekers and Schürr

IET Software, 2011

Graph grammars and graph grammar parsers are to visual languages what string grammars and parsers are to textual languages. A graph grammar specifies a set of valid graphs and can thus be used to formalise the syntax of a visual language. A graph grammar parser is a tool for recognising valid programs in such a formally defined visual language. A parser for context-sensitive graph grammars, which have proved to be suitable for formalising real-world visual languages, was developed by Rekers and Schürr. We propose three improvements of this parser. One of them enlarges the class of parsable graph grammars, while the other two increase the parser's computational efficiency. Experimental results show that for some (meaningful) graph grammars, our improvements can enhance the parser's performance by orders of magnitude. The proposed improvements will hopefully increase both the parser's applicability and the interest in visual language parsing in general.

On the concurrent semantics of Algebraic Graph Grammars

2005

Graph grammars are a powerful model of concurrent and distributed systems which can be seen as a proper extension of Petri nets. Inspired by this correspondence, a truly concurrent semantics has been developed along the years for the algebraic approaches to graph grammars, based on Winskel's style unfolding constructions as well as on suitable notions of processes.

Unfolding and event structure semantics for graph grammars

1999

We propose an unfolding semantics for graph transformation systems in the double-pushout (DPO) approach. Mimicking Winskel's construction for Petri nets, a graph grammar is unfolded into an acyclic branching structure, that is itself a (nondeterministic occurrence) graph grammar describing all the possible computations of the original grammar. The unfolding can be abstracted naturally to a prime algebraic domain and then to an event structure semantics.

Logical Description of Context-free Graph Languages

Journal of Computer and System Sciences, 1997

A graph language L is in the class C-edNCE of context-free edNCE graph languages if and only if L = f(T) where f is a function on graphs that can be de ned in monadic second-order logic and T is the set of all trees over some ranked alphabet. This logical characterization implies a large number of closure and decidability properties of the context-free edNCE graph languages. Rather than context-free graph grammars we use regular path descriptions to de ne graph languages.