Using an Abstract Representation to Specialize Functional Logic Programs

Elvira Albert, Michael Hanus and Germán Vidal

© Springer-Verlag
Proc. of the 7th International Conference on Logic for Programming and Automated Reasoning (LPAR'2000). Springer LNAI 1955, pp. 381-398, 2000

This paper introduces a novel approach for the specialization of functional logic languages. We consider a maximally simplified abstract representation of programs (which still contains all the necessary information) and define a non-standard semantics for these programs. Both things mixed together allow us to design a simple and concise partial evaluation method for modern functional logic languages, avoiding several limitations of previous approaches. Moreover, since these languages can be automatically translated into the abstract representation, our technique is widely applicable. In order to assess the practicality of our approach, we have developed a partial evaluation tool for the multi-paradigm language Curry. The partial evaluator is written in Curry itself and has been tested on an extensive benchmark suite (even a meta-interpreter). To the best of our knowledge, this is the first purely declarative partial evaluator for a functional logic language.

Available: PS BibTeX-Entry

Germán Vidal