| G. Hamilton. Compile-Time Optimisations of Storage Usage in Lazy Functional Programs. PhD thesis, University of Sterling, 1993. |
....to transformation. ffl Srensen made use of regular tree grammars [Sr94] to more accurately identify the unsafe consumers and producers. This analysis, based on a modeling of the deforestation control flow, was shown to subsume Chin s earlier approach. ffl Marlow [Mar95] and Hamilton [Ham93] separately extended deforestation to higher order programs. An extended form of treelessness, together with finite typing, is used to guarantee that higher order deforestation terminates. ffl Seidl and Srensen [SS96] recently proposed a new constraint based analysis to stop higher order ....
G. Hamilton. Compile-Time Optimisations of Storage Usage in Lazy Functional Programs. PhD thesis, University of Sterling, 1993.
....55] deforestation which eliminates intermediate data structures from first order functional programs. 1 Deforestation terminates on treeless programs. Subsequent techniques to ensure termination of deforestation on all firstorder programs are due to Chin [7, 8, 10, 11, 13] and later to Hamilton [21, 22, 24, 25]. The essence of these techniques is to annotate all parts of the program that violate the treeless syntax, and then let the deforestation algorithm skip over annotated parts. A technique that annotates fewer parts of the program is due to Srensen [48] and was later improved by Seidl [45] These ....
....Wadler s [55] Hamilton s [23] and Marlow s [35] approaches this is avoided by considering only linear programs, i.e. programs consisting of functions that do not duplicate their arguments. Some weaker restrictions are adopted in partial evaluation [46, 5] and in work on firstorder deforestation [21]. Second, there is the problem of code duplication. Unrestrained unfolding may increase the size of a program dramatically. In principle the size of a program does not affect its running time, but in practice this is not always true. Third, transformation steps can loose laziness and full ....
G. Hamilton. Compile-Time Optimisations of Storage Usage in Lazy Functional Programs. PhD thesis, University of Stirling, 1993.
....can change a polynomial time program into an exponential time program. In Wadler s deforestation (1990) this is avoided by considering only linear terms. Some weaker restrictions are adopted in partial evaluation (Sestoft, 1988; Bondorf, 1990) and other work on deforestation (Chin, 1992; Hamilton, 1993). We consider this an issue in its own right which should be dealt with separately, and is beyond the scope of this paper. The problem does not turn up in the examples we consider. Second, there is the problem of code duplication. Unrestrained unfolding may increase the size of a program ....
....aspect of deforestation is that there is a syntactic class of function definitions, treeless definitions (Wadler, 1990) such that deforestation of any composition of functions with treeless definitions is guaranteed to terminate. This fact also forms the core of the techniques of Chin (1992) and Hamilton (1993); different techniques are due to S rensen (1994b) and Seidl (1996) The problem is more complex for positive supercompilation the extra power does not come for free. The following term is treeless (though not linear) so deforestation terminates, and yet positive supercompilation does not ....
Hamilton, G.W. 1993. Compile-time optimisation of storage usage in lazy functional programs.
....were devised by Chin and Khoo [13] Hamilton and Jones [25,26] use static analyses to blaze first order programs, but in some cases blazed deforestation loops indefinitely on the blazed program. Later, Hamilton [22] describes a safe blazing scheme similar to Chin s (i iii) In his thesis [21] he gives another safe blazing scheme, replacing (ii iii) by similar semantic conditions, roughly: ii) all terms appearing as a case selector after a number of evaluation steps; iii) all terms that will be evaluated more than once. Both of (ii iii) are approximated by a usage counting ....
G. Hamilton. Compile-Time Optimisations of Storage Usage in Lazy Functional Programs. PhD thesis, University of Stirling, 1993.
....54] deforestation which eliminates intermediate data structures from first order functional programs. 1 Deforestation terminates on treeless programs. Subsequent techniques to ensure termination of deforestation on all first order programs are due to Chin [6, 7, 9, 10, 12] and later to Hamilton [20, 21, 23, 24]. The essence of these techniques is to annotate all parts of the program that violate the treeless syntax, and then let the deforestation algorithm skip over annotated parts. Following a suggestion of Jones, the second author [47] developed a technique that annotates fewer parts of the program. ....
....is the problem of avoiding duplication of computation. Transformation can change a polynomial time program into an exponential time program. This can be avoided by considering only programs consisting of functions that do not duplicate their arguments [54] Weaker restrictions are also known [45, 4, 20]. Second, there is the problem of code duplication. Unrestrained unfolding may increase the size of a program dramatically. In principle this increase does not affect running time, but in practice it may. Third, transformation steps can loose laziness and full laziness, see [34] 4 Termination ....
G. Hamilton. Compile-Time Optimisations of Storage Usage in Lazy Functional Programs. PhD thesis, University of Stirling, 1993.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC