A Practical Partial Evaluator for a Multi-Paradigm Declarative Language

by Elvira Albert, Michael Hanus, Germán Vidal

Proc. of the 5th International Symposium on Functional and Logic Programming (FLOPS 2001), Springer LNCS 2024, pp. 326-342, 2001
© Springer-Verlag

Partial evaluation is an automatic technique for program optimization which preserves program semantics. The range of its potential applications is extremely large, as witnessed by successful experiences in several fields. This paper summarizes our findings in the development of partial evaluation tools for Curry, a modern multi-paradigm declarative language which combines features from functional, logic and concurrent programming. From a practical point of view, the most promising approach appears to be a recent partial evaluation framework which translates source programs into a maximally simplified representation. We support this statement by extending the underlying method in order to design a practical partial evaluation tool for the language Curry. The process is fully automatic and can be incorporated into a Curry compiler as a source-to-source transformation on intermediate programs. An implementation of the partial evaluator has been undertaken. Experimental results confirm that our partial evaluator pays off in practice.

Preprint (PDF) BibTeX-Entry Online