MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Warm Fusion: Deriving Build-Catas from Recursive Definitions (1995) [69 citations — 2 self]

by John Launchbury ,  Tim Sheard
In Conf. on Func. Prog. Languages and Computer Architecture
Add To MetaCart

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