Experiments with the Call-by-Value Partial Evaluator
Author
María Alpuente, Moreno Falaschi, and Germán Vidal
Abstract
This paper summarizes our experience gained using the INDY
system, a narrowing-driven partial evaluator for functional logic programs
which combines in a useful and effective way the
propagation of partial data structures, by means of logical variables
and unification, with better opportunities for optimization thanks
the functional dimension.
INDY allows the user to select either a call-by-value (innermost,
eager) or a call-by-name (outside-in, lazy) narrowing strategy
to construct local narrowing trees. The trees are stopped
according to an unfolding rule which is another parameter of the
implementation, and then resultants are extracted from the root-to leaf
paths of the tree.
A short description of the system is given and
some experimental results are presented
for the call-by-value (innermost) evaluation strategy.
The experiments show in
practice that INDY can give significant performance improvements
and is quite effective on several interesting transformation problems.