Improving Functional Logic Programs by Difference-Lists

Elvira Albert, Cesar Ferri, Frank Steiner and Germán Vidal

© Springer-Verlag
Proc. of the 6th Asian Computing Science Conference (ASIAN'2000). Springer LNCS 1961, pp. 238-255, 2000

Modern multi-paradigm declarative languages integrate features from functional, logic, and concurrent programming. In this work, we consider the adaptation of the logic programming transformation based on the introduction of difference-lists to an integrated setting. Unfortunately, the use of difference-lists is impractical due to the absence of non-strict equality in lazy (call-by-name) languages. Despite all, we have developed a novel, stepwise transformation which achieves a similar effect over functional logic programs. We also show a simple and practical approach to incorporate the optimization into a real compiler. Finally, we have conducted a number of experiments which show the practicality of our proposal.

Available: PS BibTeX-Entry

Germán Vidal