@INPROCEEDINGS{HanusLibby25WLP,
author    = "Hanus, M. and Libby, S.",
title     = "Functional Logic Program Transformations",
year      = "2025",
booktitle = "Proc.\ of the 39th Workshop on(Constraint) Logic Programming (WLP 2025)",
abstract = {
Many tools used to process programs, like compilers, analyzers,
or verifiers, perform transformations on their intermediate
program representation, like abstract syntax trees. Implementing
such program transformations is a non-trivial task, since it is
necessary to iterate over the complete syntax tree and apply
various transformations at nodes in a tree. In this paper we
show how the features of functional logic programming are useful
to implement program transformations in a compact and
comprehensible manner. For this purpose, we propose to write
program transformations as partially defined and
non-deterministic operations. Since the implementation of
non-determinism usually causes some overhead compared to
deterministically defined operations, we compare our approach to
a deterministic transformation method. We evaluate these
alternatives for the functional logic language Curry and its
intermediate representation FlatCurry which is used in various
analysis and verification tools and compilers.
}
}
