Abstract
We introduce a notion of rewrite rules operating on a particular class of data-structures, represented as (cyclic) term-graphs. All basic transformations are available: node creation/deletion, node relabeling and edge redirections (including global redirections). This allows one to write algorithms handling pointers that cannot be efficiently specified using existing declarative languages. Such rewrite systems are not confluent in general, even if we stick to orthogonal, left-linear rules. In order to ensure unique normal forms, we introduce a notion of priority ordering between the nodes, which allows the programmer to control the normalization of a graph if needed. The use of total priority orderings makes rewriting purely deterministic, which is not always efficient in practice. To overcome this issue, we then show how to define more flexible strategies, which yield shorter derivations and avoid useless rewriting steps (lazy rewriting).
This work has been partly funded by the project ARROWS of the French Agence Nationale de la Recherche.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Aït-Kaci, H., Podelski, A.: Towards a Meaning of LIFE. J. Log. Program 16(3), 195–234 (1993)
Ariola, Z.M., Klop, J.W., Plump, D.: Bisimilarity in term graph rewriting. Inf. Comput. 156(1-2), 2–24 (2000)
Bakewell, A., Plump, D., Runciman, C.: Checking the shape safety of pointer manipulations. RelMiCS, pp. 48–61 (2003)
Barendregt, H., van Eekelen, M., Glauert, J., Kenneway, R., Plasmeijer, M.J., Sleep, M.: Term Graph Rewriting. In: de Bakker, J.W., Nijman, A.J., Treleaven, P.C. (eds.) PARLE 1987. LNCS, vol. 259, pp. 141–158. Springer, Heidelberg (1987)
Caferra, R., Echahed, R., Peltier, N.: Rewriting term-graphs with priority. In: Proceedings of the Eighth ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming, pp. 109–120. ACM Press, New York (2006)
Cirstea, H., Kirchner, C., Liquori, L., Wack, B.: Rewrite strategies in the rewriting calculus. Electr. Notes Theor. Comput. Sci. 86(4) (2003)
Dershowitz, N., Jouannaud, J.-P.: Rewrite systems. In: Handbook of Theoretical Computer Science, vol. B: Formal Models and Semantics (B), pp. 243–320 (1990)
Echahed, R., Janodet, J.-C.: Admissible graph rewriting and narrowing. In: Proceedings of 15th International Conference and Symposium on Logic Programming, Manchester, pp. 325–340. MIT Press, Cambridge, MA (1998)
Echahed, R., Peltier, N.: Narrowing data-structures with pointers. In: Corradini, A., Ehrig, H., Montanari, U., Ribeiro, L., Rozenberg, G. (eds.) ICGT 2006. LNCS, vol. 4178, Springer, Heidelberg (2006)
Huet, G., Lévy, J.-J.: Computation in orthogonal rewriting systems. In: Lassez, J.-L., Plotkin, G. (eds.) Computational Logic: Essays in Honor of Alan Robinson, pp. 394–443. MIT Press, Cambridge, MA (1991)
Kennaway, J.R., Klop, J.K., Sleep, M.R., De Vries, F.J.: Transfinite Reduction in Orthogonal Term Rewriting Systems. Information and Computation 119(1), 18–38 (1995)
Plump, D.: Term graph rewriting. In: Ehrig, H., Engels, G., Kreowski, H., Rozenberg, G. (eds.) Handbook of Graph Grammars and Computing by Graph Transformation, vol. 2, World Scientific, Singapore (1998)
Plump, D.: Confluence of graph transformation revisited. In: Middeldorp, A., van Oostrom, V., van Raamsdonk, F., de Vrijer, R. (eds.) Processes, Terms and Cycles: Steps on the Road to Infinity. LNCS, vol. 3838, pp. 280–308. Springer, Heidelberg (2005)
Schorr, H., Waite, W.M.: An Efficient Machine Independent Procedure for Garbage Collection in Various List Structures. Communication of the ACM 10, 501–506 (1967)
Visser, E.: A survey of strategies in rule-based program transformation systems. J. Symb. Comput. 40(1), 831–873 (2005)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Echahed, R., Peltier, N. (2007). Non Strict Confluent Rewrite Systems for Data-Structures with Pointers. In: Baader, F. (eds) Term Rewriting and Applications. RTA 2007. Lecture Notes in Computer Science, vol 4533. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-73449-9_12
Download citation
DOI: https://doi.org/10.1007/978-3-540-73449-9_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-73447-5
Online ISBN: 978-3-540-73449-9
eBook Packages: Computer ScienceComputer Science (R0)