Results 1  10
of
16
Checking the shape safety of pointer manipulations
 In International Seminar on Relational Methods in Computer Science (RelMiCS 7), Revised Selected Papers, Lecture Notes in Computer Science 3051,SpringerVerlag
, 2003
"... Abstract. We present a new algorithm for checking the shapesafety of pointer manipulation programs. In our model, an abstract, dataless pointer structure is a graph. Ashape is a language of graphs. A pointer manipulation program is modelled abstractly as a set of graph rewrite rules over such grap ..."
Abstract

Cited by 12 (4 self)
 Add to MetaCart
Abstract. We present a new algorithm for checking the shapesafety of pointer manipulation programs. In our model, an abstract, dataless pointer structure is a graph. Ashape is a language of graphs. A pointer manipulation program is modelled abstractly as a set of graph rewrite rules over such graphs where each rule corresponds to a pointer manipulation step. Each rule is annotated with the intended shape of its domain and range and our algorithm checks these annotations. We formally define the algorithm and apply it to a binary search tree insertion program. Shapesafety is undecidable in general, but our method is more widely applicable than previous checkers, in particular, it can check programs that temporarily violate a shape by the introduction of intermediate shape definitions. 1
Abstraction and Control for Shapely Nested Graph Transformation
, 2003
"... Shapely nested graph transformation is the computational model for DiaPlan, a language for programming with graphs that represent diagrams. It supports nested structuring of graphs, structural graph types (shapes), and graph variables. In this paper, we extend the model by two concepts that are esse ..."
Abstract

Cited by 5 (4 self)
 Add to MetaCart
Shapely nested graph transformation is the computational model for DiaPlan, a language for programming with graphs that represent diagrams. It supports nested structuring of graphs, structural graph types (shapes), and graph variables. In this paper, we extend the model by two concepts that are essential for programming: abstraction allows compound transformations to be named and parameterized, and control allows the order of rule application to be specified. These concepts combine neatly with the underlying computational model, and preserve its rulebased and graphical nature.
Narrowing datastructures with pointers
 In Proceedings of ICGT (International Conference of Graph Transformation). Springer LNCS 4178
, 2006
"... Abstract. We investigate the narrowing relation in a wide class of (cyclic) termgraph rewrite systems. We propose a new sound and complete narrowingbased algorithm able to solve goals in presence of data structures with pointers (e.g., circular lists, doubly linked lists etc.). We first define the ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
Abstract. We investigate the narrowing relation in a wide class of (cyclic) termgraph rewrite systems. We propose a new sound and complete narrowingbased algorithm able to solve goals in presence of data structures with pointers (e.g., circular lists, doubly linked lists etc.). We first define the class of rewrite systems we consider. Our rules provide features such as pointer (edge) redirections, relabeling of existing nodes, in addition to the creation of new nodes. Moreover, we split the set of nodes of termgraphs in two (possibly empty) subsets: (i) variables and (ii) names. Variable nodes can be mapped against any other node whereas names act as constants and thus they are supposed to match themselves. This distinction between nodes allows us to synthesize, through the narrowing process, datastructures with circular shapes. In a second step, we define the rewriting and narrowing relations. We then show the soundness and completeness of narrowing. 1
Extending C for checking shape safety
 In Proceedings Graph Transformation for Verification and Concurrency, Electronic Notes in Theoretical Computer Science
, 2005
"... The project Safe Pointers by Graph Transformation at the University of York has developed a method for specifying the shape of pointerdata structures by graph reduction, and a static checking algorithm for proving the shape safety of graph transformation rules modelling operations on pointer struct ..."
Abstract

Cited by 5 (4 self)
 Add to MetaCart
The project Safe Pointers by Graph Transformation at the University of York has developed a method for specifying the shape of pointerdata structures by graph reduction, and a static checking algorithm for proving the shape safety of graph transformation rules modelling operations on pointer structures. In this paper, we outline how to apply this approach to the C programming language. We extend ANSI C with socalled transformers which model graph transformation rules, and with shape specifications for pointer structures. For the resulting language CGRS, we present both a translation to C and and an abstraction to graph transformation. Our main result is that the abstraction of transformers to graph transformation rules is correct in that the C code implementing transformers is compatible with the semantics of graph transformation.
CONTEXTEXPLOITING SHAPES FOR DIAGRAM TRANSFORMATION
, 1993
"... DIAPLAN is a language for programming with graphs representing diagrams that is currently being developed. The computational model of the languages, nested graph transformation, supports nested structuring of graphs, and graph variables, but ishopefullystill intuitive. This paper is about struct ..."
Abstract

Cited by 4 (3 self)
 Add to MetaCart
DIAPLAN is a language for programming with graphs representing diagrams that is currently being developed. The computational model of the languages, nested graph transformation, supports nested structuring of graphs, and graph variables, but ishopefullystill intuitive. This paper is about structural typing of nested graphs and nested graph transformation systems by shape rules. We extend the contextfree shape rules proposed in earlier work to contextexploiting shape rules by which many relevant graph structures can be specified. The conformance of a nested graph to shape rules is decidable. If a transformation system conforms to shape rules as well, it can be shown to preserve shape conformance of the graphs it is applied to. This sets up a static type discipline for nested graph transformation.
T.: Strong joinability analysis for graph transformation systems
 in CHR. In: 5th International Workshop on Computing with Terms and Graphs
, 2009
"... The notion of confluence is prevalent in graph transformation systems (GTS) as well as constraint handling rules (CHR). This work presents a generalized embedding of GTS in CHR that allows to consider strong derivations in confluence analyses. Confluence of a terminating CHR program is decidable, bu ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
The notion of confluence is prevalent in graph transformation systems (GTS) as well as constraint handling rules (CHR). This work presents a generalized embedding of GTS in CHR that allows to consider strong derivations in confluence analyses. Confluence of a terminating CHR program is decidable, but confluence of a terminating GTS is undecidable. We show that observable confluence in CHR is a sufficient criterion for confluence of the embedded GTS. For this purpose the automatic confluence check for CHR can be reused. Keywords:
Modeling Pointer Redirection as Cyclic Termgraph Rewriting
 TERMGRAPH 2006 PRELIMINARY VERSION
, 2006
"... We tackle the problem of datastructure rewriting including global and local pointer redirections. Each basic rewrite step may perform three kinds of actions: (i) Local redirection, the aim of which is to redirect specific pointers determined by means of a pattern; (ii) Replacement, that may add new ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
We tackle the problem of datastructure rewriting including global and local pointer redirections. Each basic rewrite step may perform three kinds of actions: (i) Local redirection, the aim of which is to redirect specific pointers determined by means of a pattern; (ii) Replacement, that may add new information to datastructures; (iii) Global redirection, which is aimed at redirecting all pointers targeting a node towards another one. We define a new framework, following the doublepushout approach, where graph rewrite rules may mix these three kinds of actions in a row. We define first the category of graphs we consider and then we define rewrite rules as pairs of graph homomorphisms of the form L ← K → R. In our setting, graph K is not arbitrary, it is used to encode pointer redirection. Furthermore, pushouts do not always exist and complement pushouts, when they exist, are not unique. Despite these concerns, our definition of rewriting steps is such that a rewrite rule can always be fired, once a matching is found.
HoareStyle Verification of Graph Programs
, 2012
"... GP (for Graph Programs) is an experimental nondeterministic programming language for solving problems on graphs and graphlike structures. The language is based on graph transformation rules, allowing visual programming at a high level of abstraction. In particular, GP frees programmers from dealing ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
GP (for Graph Programs) is an experimental nondeterministic programming language for solving problems on graphs and graphlike structures. The language is based on graph transformation rules, allowing visual programming at a high level of abstraction. In particular, GP frees programmers from dealing with lowlevel data structures. In this paper, we present a Hoarestyle proof system for verifying the partial correctness of (a subset of) graph programs. The pre and postconditions of the calculus are nested graph conditions with expressions, a formalism for specifying both structural graph properties and properties of labels. We show that our proof system is sound with respect to GP’s operational semantics and give examples of its use.
Adaptive Star Grammars and Their Languages
"... Motivated by applications that require mechanisms for describing the structure of objectoriented programs, adaptive star grammars are introduced, and their fundamental properties are studied. In adaptive star grammars, rules are actually schemata which, via the cloning of socalled multiple nodes, ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Motivated by applications that require mechanisms for describing the structure of objectoriented programs, adaptive star grammars are introduced, and their fundamental properties are studied. In adaptive star grammars, rules are actually schemata which, via the cloning of socalled multiple nodes, may adapt to potentially infinitely many contexts when they are applied. This mechanism makes adaptive star grammars more powerful than contextfree graph grammars. Nevertheless, they turn out to be restricted enough to share some of the basic characteristics of contextfree devices. In particular, the underlying substitution operator enjoys associativity and confluence properties quite similar to those of contextfree graph grammars, and the membership problem for adaptive star grammars is decidable. 1
Graph Transformation in Constant Time
"... Abstract. We present conditions under which graph transformation rules can be applied in time independent of the size of the input graph: graphs must contain a unique root label, nodes in the lefthand sides of rules must be reachable from the root, and nodes must have a bounded outdegree. We establ ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Abstract. We present conditions under which graph transformation rules can be applied in time independent of the size of the input graph: graphs must contain a unique root label, nodes in the lefthand sides of rules must be reachable from the root, and nodes must have a bounded outdegree. We establish a constant upper bound for the time needed to construct all graphs resulting from an application of a fixed rule to an input graph. We also give an improved upper bound under the stronger condition that all edges outgoing from a node must have distinct labels. Then this result is applied to identify a class of graph reduction systems that define graph languages with a linear membership test. In a case study we prove that the (noncontextfree) language of balanced binary trees with backpointers belongs to this class. 1