Modeling Pointer Redirection as Cyclic Term-graph Rewriting

We tackle the problem of data-structure 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 data-structures; (iii) Global redirection, which is aimed at redirecting all pointers targeting a node towards another one. We define a new framework, following the double-pushout 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 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.

[1]  Gabriele Taentzer,et al.  The AGG approach: language and environment , 1999 .

[2]  Jean-Christophe Janodet,et al.  Admissible Graph Rewriting and Narrowing , 1998, IJCSLP.

[3]  Albert Zündorf,et al.  The PROGRES approach: language and environment , 1999 .

[4]  Zena M. Ariola,et al.  Equational Term Graph Rewriting , 1996, Fundam. Informaticae.

[5]  Colin Runciman,et al.  Checking the Shape Safety of Pointer Manipulations , 2003, RelMiCS.

[6]  Annegret Habel,et al.  Computational Completeness of Programming Languages Based on Graph Transformation , 2001, FoSSaCS.

[7]  Colin Runciman,et al.  Specifying Pointer Structures by Graph Reduction , 2003, AGTIVE.

[8]  Fabio Gadducci,et al.  Rewriting on cyclic structures: Equivalence between the operational and the categorical description , 1999, RAIRO Theor. Informatics Appl..

[9]  Hartmut Ehrig,et al.  Applications, languages and tools , 1999 .

[10]  Marko C. J. D. van Eekelen,et al.  Term Graph Rewriting , 1987, PARLE.

[11]  Grzegorz Rozenberg,et al.  Handbook of Graph Grammars and Computing by Graph Transformations, Volume 1: Foundations , 1997 .

[12]  Annegret Habel,et al.  Double-pushout graph transformation revisited , 2001, Mathematical Structures in Computer Science.

[13]  R. Varga,et al.  Proof of Theorem 4 , 1983 .

[14]  Peter J. Rodgers A graph rewriting programming language for graph drawing , 1998, Proceedings. 1998 IEEE Symposium on Visual Languages (Cat. No.98TB100254).

[15]  James R. Slagle,et al.  Automated Theorem-Proving for Theories with Simplifiers Commutativity, and Associativity , 1974, JACM.

[16]  Clara Bertolissi,et al.  A Rewriting Calculus for Cyclic Higher-order Term Graphs , 2005, Electron. Notes Theor. Comput. Sci..

[17]  George Angelos Papadopoulos,et al.  Dactl: an experimental graph rewriting language , 1990, J. Program. Lang..

[18]  Giuseppe Longo,et al.  Categories, types and structures - an introduction to category theory for the working computer scientist , 1991, Foundations of computing.

[19]  Richard Banach Term Graph Rewriting and Garbage Collection Using Ppfibrations , 1994, Theor. Comput. Sci..

[20]  Andrea Corradini,et al.  Hyperedge Replacement Jungle Rewriting for Term-Rewriting Systems and Programming , 1993, Theor. Comput. Sci..

[21]  Erik Barendsen,et al.  Graph rewriting aspects of functional programming , 1999 .

[22]  Hartmut Ehrig,et al.  Concurrency, parallelism, and distribution , 1999 .

[23]  Detlef Plump,et al.  Towards Graph Programs for Graph Algorithms , 2004, ICGT.

[24]  Reiko Heckel,et al.  Algebraic Approaches to Graph Transformation - Part I: Basic Concepts and Double Pushout Approach , 1997, Handbook of Graph Grammars.

[25]  Hartmut Ehrig,et al.  Handbook of graph grammars and computing by graph transformation: vol. 3: concurrency, parallelism, and distribution , 1999 .

[26]  Jan Willem Klop,et al.  On the adequacy of graph rewriting for simulating term rewriting , 1994, TOPL.

[27]  Reiko Heckel,et al.  A Bi-Categorical Axiomatisation of Concurrent Graph Rewriting , 1999, CTCS.

[28]  Friedrich Otto,et al.  String-Rewriting Systems , 1993, Text and Monographs in Computer Science.

[29]  Luigi Liquori,et al.  Addressed Term Rewriting Systems: Syntax, Semantics, and Pragmatics: Extended Abstract , 2005, TERMGRAPH.

[30]  Dominique Duval,et al.  Adjunction for Garbage Collection with Application to Graph Rewriting , 2007, RTA.

[31]  Annegret Habel,et al.  Jungle evaluation , 1988, Fundam. Informaticae.

[32]  Tobias Nipkow,et al.  Term rewriting and all that , 1998 .