Using an Abstract Representation to Specialize Functional Logic Programs

by Elvira Albert, Michael Hanus, Germán Vidal

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

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.

Preprint (PDF) BibTeX-Entry Online