@inproceedings{Antoy96PLILP ,author={S. Antoy} ,title={Needed Narrowing in Prolog} ,year={1996} ,month={September} ,address={Aachen, Germany} ,pages={473-474} ,publisher={Springer LNCS} ,volume={1140} ,booktitle={8th Int'l Symp. on Prog. Lang., Implementations, Logics, and Programs (PLILP'96)} ,note={Extended version: TR96-2, Portland State University, May 1996} ,abstract={ We describe the implementation of needed narrowing deployed in a compiler of a functional-logic language and present a few related concepts and results. Our implementation is obtained by translating rewrite rules into Prolog source code and optionally applying a set of optimizations to this code. We benchmark the effectiveness of each individual optimization. We show that our implementation is more efficient than all other previously proposed similar implementations. We measure both execution times, as is customarily done, and memory allocation that turns out to be a significant factor. We solve equations using a semi-strict equality relation that generalizes classic strict equality with sometimes a smaller search space. We give a new, more declarative and accessible formulation of a definitional tree, a crucial concept of our approach, and we present a simple algorithm to build definitional trees. We briefly explore a notion of simplification that is applicable to and sometimes beneficial for computations in inductively sequential systems, where classic simplification is not applicable.} }