Higher-Order and Symbolic Computation, 18(1/2)
Derivation of Efficient Logic Programs by Specialization and Reduction of Nondeterminism
Alberto Pettorossi, DISP, University of Roma Tor Vergata, Roma, Italy
Maurizio Proietti, IASI-CNR, Roma, Italy
Sophie Renault, European Patent Office, Rijswijk, The Netherlands
|
Abstract: Program specialization is a program transformation
methodology which improves program efficiency by exploiting the
information about the input data which are available at compile time.
We show that current techniques for program specialization based on
partial evaluation do not perform well on nondeterministic logic
programs. We then consider a set of transformation rules which extend
the ones used for partial evaluation, and we propose a strategy for
guiding the application of these extended rules so to derive very
efficient specialized programs. The efficiency improvements which
sometimes are exponential, are due to the reduction of nondeterminism
and to the fact that the computations which are performed by the
initial programs in different branches of the computation trees, are
performed by the specialized programs within single branches. In order
to reduce nondeterminism we also make use of mode information for
guiding the unfolding process. To exemplify our technique, we show
that we can automatically derive very efficient matching programs and
parsers for regular languages. The derivations we have performed
could not have been done by previously known partial evaluation
techniques.
|
This article is not yet available.
|
|