Volume II: Parallel Languages on PARLE: Parallel Architectures and Languages Europe
Handbook of theoretical computer science (vol. B)
Transfinite reductions in orthogonal term rewriting systems
Information and Computation
Admissible graph rewriting and narrowing
JICSLP'98 Proceedings of the 1998 joint international conference and symposium on Logic programming
Handbook of graph grammars and computing by graph transformation
Bisimilarity in term graph rewriting
Information and Computation - Special issue on EXPRESS 1997
An efficient machine-independent procedure for garbage collection in various list structures
Communications of the ACM
Rewriting term-graphs with priority
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
A survey of strategies in rule-based program transformation systems
Journal of Symbolic Computation
Narrowing data-structures with pointers
ICGT'06 Proceedings of the Third international conference on Graph Transformations
Confluence of graph transformation revisited
Processes, Terms and Cycles
On Term-Graph Rewrite Strategies
Electronic Notes in Theoretical Computer Science (ENTCS)
A Needed Rewriting Strategy for Data-Structures with Pointers
RTA '08 Proceedings of the 19th international conference on Rewriting Techniques and Applications
Inductively Sequential Term-Graph Rewrite Systems
ICGT '08 Proceedings of the 4th international conference on Graph Transformations
Hi-index | 0.00 |
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).