Warm Fusion: Deriving Build-Catas from Recursive Definitions (1995) [69 citations — 2 self]
Abstract:
Program fusion is the process whereby separate pieces of code are fused into a single piece, typically transforming a multi-pass algorithm into a single pass. Recent work has made it clear that the process is especially successful if the loops or recursions are expressed using catamorphisms (e.g.foldr) and constructor-abstraction (e.g. build). In this paper we show how to transform recursive programs into this form automatically, thus enabling the fusion transformation to be applied more easily than before. 1 Introduction There are significant advantages to multi-pass algorithms, in which intermediate data-structures are created and traversed. In particular, each of the passes may be relatively simple, so are both easier to write and are potentially more reusable. By separating many distinct phases it becomes possible to focus on a single task, rather than attempting to do many things at the same time. The classic toy example of this is to compute the sum of the squares of the numbe...
Citations
| 341 | Deforestation: transforming programs to eliminate trees – Wadler - 1990 |
| 154 | A short cut to deforestation – Gill, Launchbury, et al. |
| 130 | The concept of a supercompiler – Turchin - 1986 |
| 104 | A Fold for All Seasons – Sheard, Fegaras - 1993 |
| 86 | Unboxed values as first class citizens in a non-strict functional language – Jones, Launchbury - 1991 |
| 49 | A system which automatically improves programs – Darlington, Burstall - 1976 |
| 31 | Listlessness is Better than Laziness: Lazy Evaluation and Garbage Collection at Compile Time – Wadler |
| 22 | When will deforestation stop – Ferguson, Wadler - 1988 |
| 10 | Functional Programming with Bananas – Meijer, Fokkinga, et al. |
| 2 | and Promotability – Homomorphisms - 1989 |
| 2 | G.Hutton, Bananas in Space: Extending Squiggol to Function-Space Types – Meijer - 1995 |
| 1 | Improving Programs Which Induct Over Multiple Inductive Structures – Sheard, Fegaras, et al. - 1994 |

