GOOD REWRITE STRATEGIES FOR FP.
Abstract
The authors consider languages whose operational semantics is given by a set of rewrite rules. In a previous paper (1985) they considered the question of what it meant for there to be enough rewrite rules in such a language and showed that, at least with respect to one notion of having enough rules, there were enough rewrite rules in an extended version of the functional programming language FP. Here they give two stronger notions of completeness and show that FP also has enough rules with respect to these notions. However, in order to implement a language based on rewrite rules, it does not suffice to know that there are enough rules in the language; it is also necessary to have a good strategy for determining the order in which to apply them. The authors examine and characterize notions of goodness and give examples of a number of natural good strategies.