by Akihiko Takano, Erik Meijer
In Proc. Conference on Functional Programming Languages and Computer Architecture
http://www-sop.inria.fr/oasis/personnel/Didier.Parigot/www/fnc2/Postscript/MeT95.ps.gz
Add To MetaCart
Abstract:
In functional programming, intermediate data structures are often used to "glue " together small programs. Deforestation is a program transformation to remove these intermediate data structures automatically. We present a simple algorithm for deforestation based on two fusion rules for hylomorphism, an expressive recursion pattern. A generic notation for hylomorphisms is introduced, where natural transformations are explicitly factored out, and it is used to represent programs. Our method successfully eliminates intermediate data structures of any algebraic type from a much larger class of compositional functional programs than previous techniques. 1
Citations
|
529
|
A transformation system for developing recursive programs
– Burstall, Darlington
- 1977
|
|
275
|
Functional programming with bananas, lenses, envelopes and barbed wire
– Meijer, Fokkinga, et al.
- 1991
|
|
216
|
Theorems for Free
– Wadler
- 1989
|
|
179
|
A short cut to deforestation
– Gill, Launchbury, et al.
- 1993
|
|
141
|
The concept of a supercompiler
– Turchin
- 1986
|
|
121
|
A fold for all seasons
– Sheard, Fegaras
- 1993
|
|
98
|
and order in algorithmics
– Law
- 1992
|
|
90
|
Algorithmics - towards programming as a mathematical activity
– Meertens
- 1986
|
|
67
|
Safe fusion of functional expressions
– Chin
|
|
51
|
Generalized partial computation
– Futamura, Nogi
|
|
43
|
Calculating Compilers
– Meijer
- 1992
|
|
41
|
Theories for Algorithm Calculation
– Jeuring
- 1993
|
|
31
|
Improving Programs which Recurse over Multiple Inductive Structures
– Fegaras, Sheard, et al.
- 1994
|
|
25
|
Towards Unifying Partial Evaluation, Deforestation, Supercompilation, and GPC
– Srensen, Gluck, et al.
- 1994
|
|
16
|
A grammar-based data-flow analysis to stop deforestation
– S��rensen
- 1994
|
|
15
|
Generalized partial computation for a lazy functional language
– Takano
- 1991
|
|
13
|
Experiments with a supercompiler
– Turchin, Nirenberg, et al.
- 1982
|
|
1
|
and Oege Moor. Relational program derivation and context-free language recognition
– Bird
- 1994
|
|
1
|
Acid rain theorem
– Meijer
- 1994
|