A Transformation System for Lazy Functional Logic Programs

María Alpuente, Moreno Falaschi, Ginés Moreno, and Germán Vidal

© Springer-Verlag
Proc. of the 4th International Symposium on Functional and Logic Programming (FLOPS'99). Springer LNCS 1722, pp. 147-162, 1999

Needed narrowing is an optimal and complete operational principle for modern declarative languages which integrate the best features of (lazy) functional and logic programming. We define a transformation methodology for functional logic programs based on needed narrowing. We provide (strong) correctness results for the transformation system w.r.t. the set of computed values and answer substitutions and show that the prominent properties of needed narrowing carry over to the transformation process and the transformed programs. We illustrate the power of the system by taking on in our setting two well-known transformation strategies (composition and tupling). We also provide an implementation of the transformation system which, by means of some experimental results, highlights the benefits of our approach.

Available: DVI PS BibTeX Entry


Germán Vidal