Wadler’s deforestation algorithm eliminates intermediate data structures from functional pro-grams. 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 first by Hamilton and then by Marlow. We present a new technique for ensuring termination of deforestation on all higher-order pro-grams 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...
Previous deforestation and supercompilation algorithms may introduce accidental termination when app...
Deforestation optimises a functional program by transforming it into another one that does not creat...
Software engineering has to reconcile modularity with efficiency. One way to grapple with this dilem...
AbstractWadler's deforestation algorithm eliminates intermediate data structures from functional pro...
Abstract. Deforestation is a transformation of functional programs to remove intermediate data struc...
Functional programming languages are an ideal medium for program optimisations based on source-to-s...
ii In lazy functional programming modularity is often achieved by using intermediate data structures...
In functional programming, intermediate data structures are often used to “glue’) together small pro...
In lazy functional programs a data structure is often used to combine two separate parts of the prog...
Intermediate structures such as lists and higher-order functions are very common in most styles of f...
Deforestation optimises a functional program by transforming it into another one that does not creat...
We compare transformations for the elimination of intermediate results in rst-order functional pro...
In functional languages intermediate data structures are often used as glue to connect separate par...
Abstract. Deforestation optimises a functional program by transform-ing it into another one that doe...
Previous deforestation and supercompilation algorithms may introduce accidental termination when app...
Previous deforestation and supercompilation algorithms may introduce accidental termination when app...
Deforestation optimises a functional program by transforming it into another one that does not creat...
Software engineering has to reconcile modularity with efficiency. One way to grapple with this dilem...
AbstractWadler's deforestation algorithm eliminates intermediate data structures from functional pro...
Abstract. Deforestation is a transformation of functional programs to remove intermediate data struc...
Functional programming languages are an ideal medium for program optimisations based on source-to-s...
ii In lazy functional programming modularity is often achieved by using intermediate data structures...
In functional programming, intermediate data structures are often used to “glue’) together small pro...
In lazy functional programs a data structure is often used to combine two separate parts of the prog...
Intermediate structures such as lists and higher-order functions are very common in most styles of f...
Deforestation optimises a functional program by transforming it into another one that does not creat...
We compare transformations for the elimination of intermediate results in rst-order functional pro...
In functional languages intermediate data structures are often used as glue to connect separate par...
Abstract. Deforestation optimises a functional program by transform-ing it into another one that doe...
Previous deforestation and supercompilation algorithms may introduce accidental termination when app...
Previous deforestation and supercompilation algorithms may introduce accidental termination when app...
Deforestation optimises a functional program by transforming it into another one that does not creat...
Software engineering has to reconcile modularity with efficiency. One way to grapple with this dilem...