A Transformation System
for Lazy Functional Logic Programs
Authors
M. Alpuente, M. Falaschi, G. Moreno, G. Vidal
Abstract
Needed narrowing is an optimal and complete operational principle
for modern declarative languages which integrate the best features of
(lazy) functional and logic programming.
We define a transformation methodology for
functional logic programs based on needed narrowing.
We provide (strong) correctness results for the transformation system
w.r.t. the set of computed values and
answer substitutions and show that the
prominent properties of needed narrowing
carry over to the transformation process and the transformed
programs.
We illustrate the power of the system by taking on
in our setting
two well-known transformation strategies (composition
and tupling).
We also provide an implementation
of the transformation system which, by means of some experimental results,
highlights the benefits of our approach.
Keywords:
program transformation, functional logic programming,
needed narrowing