Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
A natural semantics for lazy evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Tutorial notes on partial evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Specialization of lazy functional logic programs
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A residualizing semantics for the partial evaluation of functional logic programs
Information Processing Letters
Secrets of the Glasgow Haskell Compiler inliner
Journal of Functional Programming
Fast narrowing-driven partial evaluation for inductively sequential programs
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Termination analysis and specialization-point insertion in offline partial evaluation
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Ecce and Logen partial evaluators and their web interfaces
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Operational semantics for declarative multi-paradigm languages
Journal of Symbolic Computation
Improving offline narrowing-driven partial evaluation using size-change graphs
LOPSTR'06 Proceedings of the 16th international conference on Logic-based program synthesis and transformation
Hi-index | 0.00 |
The goal of partial evaluation is the specialization of programs w.r.t. part of their input data. Although this technique is already well-known in the context of functional languages, current approaches are either overly restrictive or destroy sharing through the specialization process, which is unacceptable from a performance point of view. In this work, we present the basis of a new partial evaluation scheme for first-order lazy functional programs that preserves sharing through the specialization process and still allows the unfolding of arbitrary function calls.