×

A practical partial evaluator for a multi-paradigm declarative language. (English) Zbl 0977.68593

Kuchen, Herbert (ed.) et al., Functional and logic programming. 5th international symposium, FLOPS 2001, Tokyo, Japan, March 7-9, 2001. Proceedings. Berlin: Springer. Lect. Notes Comput. Sci. 2024, 326-342 (2001).
Summary: 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.
For the entire collection see [Zbl 0958.00038].

MSC:

68U99 Computing methodologies and applications
68N15 Theory of programming languages
68N17 Logic programming
68N18 Functional programming and lambda calculus
68N19 Other programming paradigms (object-oriented, sequential, concurrent, automatic, etc.)

Software:

ECCE; TOY