| | |
Summary: Relating Graph and Term Rewriting via B¨ohm Models
Zena M. Ariola
Computer & Information Science Department
University of Oregon, Eugene, OR 974031202
email: ariola@cs.uoregon.edu
Dealing properly with sharing is important for expressing some of the common compiler optimizations as source
tosource transformations, such as common subexpressions elimination, lifting of free expressions and removal
of invariants from a loop. Term graph rewriting is a computational model to accommodate these concerns. In
this paper we are interested in defining a term model for term graph rewriting systems, which allows us to prove
total correctness of those optimizations. We introduce the notion of B¨ohm tree, and show that for orthogonal
term graph rewriting systems, B¨ohm tree equivalence defines a congruence. Total correctness then follows in a
straightforward way from showing that if a program M contains less sharing than a program N , then both M
and N have the same B¨ohm tree.
Using B¨ohm trees we also show that orthogonal term graph rewriting systems are a correct implementation
of orthogonal term rewriting systems. This boils down to showing that the behavior of a term graph can be
deduced from its finite approximations, that is, graph rewriting is a continuous operation. Our approach differs
from that of other researchers which is based on infinite rewriting.
1. Introduction
Dealing properly with sharing is important in a framework for reasoning about the implementation of
functional languages and the correctness of certain compiler optimizations, such as common subexpressions
|