Non strict confluent rewrite systems for data-structures with pointers

  • Authors:
  • Rachid Echahed;Nicolas Peltier

  • Affiliations:
  • LIG, CNRS, Grenoble Cedex, France;LIG, CNRS, Grenoble Cedex, France

  • Venue:
  • RTA'07 Proceedings of the 18th international conference on Term rewriting and applications
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

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).