MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Constraints to stop deforestation (1998) [11 citations — 1 self]

Download:
Download as a PDF | Download as a PS
by H. Seidl, M. H. Srensen
Sci. Comput. Program
http://www.informatik.uni-trier.de/~seidl/papers/deforest-long.ps.gz
Add To MetaCart

Abstract:

Wadler's deforestation algorithm eliminates intermediate data structures from functional programs. To be suitable for inclusion in a compiler, deforestation must terminate on all programs. Several techniques exist to ensure termination of deforestation on all first-order programs, but general techniques for higher-order programs were introduced only recently by first Hamilton and then Marlow. We present a new technique for ensuring termination of deforestation on all higher-order programs that allows useful transformation steps prohibited in Hamilton 's and Marlow's techniques. The technique uses a constraint-based higher-order control-flow analysis. We also relate our technique to previous approaches to termination of first- and higher-order deforestation in some detail. 1

Citations

801 A theory of type polymorphism in programming – Milner - 1978
529 A transformation system for developing recursive programs – Burstall, Darlington - 1977
444 Lambda calculi with types – Barendregt - 1991
246 Why Functional Programming Matters – Hughes - 1989
179 A short cut to deforestation – Gill, Launchbury, et al. - 1993
155 The call-by-need lambda calculus – Ariola, Felleisen, et al. - 1995
127 Type inference with polymorphic recursion – Henglein - 1993
117 Set-based analysis of ML programs – Heintze - 1994
86 The principal type scheme of an object in combinatory logic. Transactions of theAmerican Mathematical Society – Hindley - 1969
84 Warm fusion: deriving build-catas from recursive definitions – Launchbury, Sheard - 1995
81 Polymorphic Type Schemes and Recursive Definitions – Mycroft - 1984
71 Using circular programs to eliminate multiple traversals of data – Bird - 1984
67 Safe fusion of functional expressions – Chin
50 Self-Applicable Partial Evaluation – Bondorf - 1990
49 Cheap deforestation for non-strict functional languages – Gill - 1996
49 Global Control for Partial Deduction through Characteristic Atoms and Global Trees – Leuschel, Martens - 1996
44 A system for assisting program transformation – Feather - 1982
40 Automatic Methods for Program Transformation – Chin - 1990
40 Finiteness analysis – Holst - 1991
38 Safe Fusion of Functional Expressions II: Further Improvements – Chin - 1994
33 An experimental program transformation and synthesis system – Darlington - 1981
31 Improving Programs which Recurse over Multiple Inductive Structures – Fegaras, Sheard, et al. - 1994
29 Synthesis: Dreams => Programs – Manna, Waldinger - 1979
27 When will Deforestation Stop – Ferguson, Wadler - 1988
15 Higher order deforestation – Hamilton
13 Extending deforestation for first order functional programs – Hamilton, Jones - 1991
9 Fully lazy higher-order removal – Chin - 1992
9 Deforestation for higher-order functions – Marlow, Wadler - 1992
6 Better consumers for deforestation – Chin, Khoo - 1995
6 Cheap deforestation in practice: An optimiser for Haskell – Gill, Jones
5 Higher-order removal transformation technique for functional programs – Chin, Darlington - 1992
5 Deforestation for Higher-Order Functional Languages – Marlow - 1996
4 Generalising deforestation to all first-order functional programs – Chin - 1991
4 Compile-Time Optimisations of Storage Usage in Lazy Functional Programs – Hamilton - 1993
4 Transforming programs to eliminate intermediate structures – Hamilton, Jones - 1991
3 Extending first order deforestation – Hamilton - 1995
3 Transformations of FP program schemes – Kierburtz, Schultis - 1981
1 Automatic autoprojection of recursive equations – Bondorf - 1991