A Practical Partial Evaluator for a Multi-Paradigm Declarative Language

Elvira Albert, Michael Hanus and Germán Vidal

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

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.

Available: DVI PS BibTeX-Entry

Germán Vidal