Functional programming languages are an ideal medium for program optimisations based on source-to-source transformation techniques. Referential transparency affords opportunities for a wide range of correctness-preserving transformations leading to potent optimisation strategies. This thesis builds on deforestation, a program transformation technique due to Wadler that removes intermediate data structures from first-order functional programs. Our contribution is to reformulate deforestation for higher-order functional programming languages, and to show that the resulting algorithm terminates given certain syntactic and typing constraints on the input. These constraints are entirely reasonable, indeed it is possible to translate any...
Deforestation optimises a functional program by transforming it into another one that does not creat...
In functional programming, intermediate data structures are often used to “glue’) together small pro...
Deforestation optimises a functional program by transforming it into another one that does not creat...
In functional languages intermediate data structures are often used as glue to connect separate par...
AbstractWadler's deforestation algorithm eliminates intermediate data structures from functional pro...
In functional languages intermediate data structures are often used as glue to connect separate part...
AbstractAn algorithm that transforms programs to eliminate intermediate trees is presented. The algo...
Wadler’s deforestation algorithm eliminates intermediate data structures from functional pro-grams. ...
In lazy functional programming modularity is often achieved by using intermediate data structures to...
We present a simple, automatic transformation — the foldr/build transformation — which successfully ...
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...
We compare transformations for the elimination of intermediate results in rst-order functional pro...
AbstractThis paper shows how the Improvement Theorem — a semantic condition for establishing the tot...
ii In lazy functional programming modularity is often achieved by using intermediate data structures...
Deforestation optimises a functional program by transforming it into another one that does not creat...
In functional programming, intermediate data structures are often used to “glue’) together small pro...
Deforestation optimises a functional program by transforming it into another one that does not creat...
In functional languages intermediate data structures are often used as glue to connect separate par...
AbstractWadler's deforestation algorithm eliminates intermediate data structures from functional pro...
In functional languages intermediate data structures are often used as glue to connect separate part...
AbstractAn algorithm that transforms programs to eliminate intermediate trees is presented. The algo...
Wadler’s deforestation algorithm eliminates intermediate data structures from functional pro-grams. ...
In lazy functional programming modularity is often achieved by using intermediate data structures to...
We present a simple, automatic transformation — the foldr/build transformation — which successfully ...
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...
We compare transformations for the elimination of intermediate results in rst-order functional pro...
AbstractThis paper shows how the Improvement Theorem — a semantic condition for establishing the tot...
ii In lazy functional programming modularity is often achieved by using intermediate data structures...
Deforestation optimises a functional program by transforming it into another one that does not creat...
In functional programming, intermediate data structures are often used to “glue’) together small pro...
Deforestation optimises a functional program by transforming it into another one that does not creat...