Paper: Good Rewrite Strategies for FP (at LICS 1986)
Abstract
We consider languages whose operational semantics is given by a set of rewrite rules. In a previous paper we 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 we 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; we also need to have a good strategy for determining the order in which to apply them. But what is "good"? Corresponding to each of our notions of completeness there is a notion of a good rewrite strategy. We examine and characterize these notions of goodness, and give examples of a number of natural good strategies.
BibTeX
@InProceedings{HalpernWilliamsWimm-GoodRewriteStrategi, author = {Joseph Y. Halpern and John H. Williams and Edward L. Wimmers}, title = {Good Rewrite Strategies for FP}, booktitle = {Proceedings of the First Annual IEEE Symposium on Logic in Computer Science (LICS 1986)}, year = {1986}, month = {June}, pages = {149--162}, location = {Cambridge, MA, USA}, publisher = {IEEE Computer Society Press} }