In functional languages intermediate data structures are often used as glue to connect separate parts of a program together. Deforestation is the process of automatically removing intermediate data structures. In this thesis we present and analyse a new approach to deforestation. This new approach is both practical and general. We analyse in detail the problem of list removal rather than the more general problem of arbitrary data structure removal. This more limited scope allows a complete evaluation of the pragmatic aspects of using our deforestation technology. We have implemented our list deforestation algorithm in the Glasgow Haskell compiler. Our implementation has allowed practical feedback. One important conclusion is that...
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...
HaRe [?] is a system developed at the University of Kent Computing Laboratory to support refactoring...
In functional languages intermediate data structures are often used as glue to connect separate par...
In functional languages intermediate data structures are often used as glue to connect separate part...
Functional programming languages are an ideal medium for program optimisations based on source-to-s...
AbstractWadler's deforestation algorithm eliminates intermediate data structures from functional pro...
We present a simple, automatic transformation — the foldr/build transformation — which successfully ...
Lists are often used as "glue" to connect separate parts of a program together. We propose...
ii In lazy functional programming modularity is often achieved by using intermediate data structures...
AbstractAn algorithm that transforms programs to eliminate intermediate trees is presented. The algo...
Deforestation optimises a functional program by transforming it into another one that does not creat...
In lazy functional programs a data structure is often used to combine two separate parts of the prog...
In lazy functional programming modularity is often achieved by using intermediate data structures to...
Deforestation optimises a functional program by transforming it into another one that does not creat...
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...
HaRe [?] is a system developed at the University of Kent Computing Laboratory to support refactoring...
In functional languages intermediate data structures are often used as glue to connect separate par...
In functional languages intermediate data structures are often used as glue to connect separate part...
Functional programming languages are an ideal medium for program optimisations based on source-to-s...
AbstractWadler's deforestation algorithm eliminates intermediate data structures from functional pro...
We present a simple, automatic transformation — the foldr/build transformation — which successfully ...
Lists are often used as "glue" to connect separate parts of a program together. We propose...
ii In lazy functional programming modularity is often achieved by using intermediate data structures...
AbstractAn algorithm that transforms programs to eliminate intermediate trees is presented. The algo...
Deforestation optimises a functional program by transforming it into another one that does not creat...
In lazy functional programs a data structure is often used to combine two separate parts of the prog...
In lazy functional programming modularity is often achieved by using intermediate data structures to...
Deforestation optimises a functional program by transforming it into another one that does not creat...
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...
HaRe [?] is a system developed at the University of Kent Computing Laboratory to support refactoring...