@INPROCEEDINGS{HanusTeegen21,
author    = "Hanus, M. and Teegen, F.",
title     = "Memoized Pull-Tabbing for Functional Logic Programming",
year      = "2021",
booktitle = "Proceedings of the 28th International Workshop on Functional
             and Constraint Logic Programming (WFLP 2020)",
pages     = {57-73},
publisher = {Springer LNCS 12560},
abstract = {
Pull-tabbing is an evaluation technique for functional logic programs
which computes all non-deterministic results in a single graph structure.
Pull-tab steps are local graph transformations to move
non-deterministic choices towards the root of an expression.
Pull-tabbing is independent of a search strategy so that
different strategies (depth-first, breadth-first, parallel) can be used
to extract the results of a computation.
It has been used to compile functional logic languages
into imperative or purely functional target languages.
Pull-tab steps might duplicate choices in case of shared subexpressions.
This could result in a dramatic increase of execution time
compared to a backtracking implementation.
In this paper we propose a refinement which avoids this efficiency
problem while keeping all the good properties of pull-tabbing.
We evaluate a first implementation of this
improved technique in the Julia programming language.
}
}
