Constraints to Stop Higher-Order Deforestation (1997)
| Venue: | In 24th ACM Symposium on Principles of Programming Languages |
| Citations: | 11 - 1 self |
BibTeX
@INPROCEEDINGS{Seidl97constraintsto,
author = {H. Seidl and M.H. Sørensen},
title = {Constraints to Stop Higher-Order Deforestation},
booktitle = {In 24th ACM Symposium on Principles of Programming Languages},
year = {1997},
pages = {400--413},
publisher = {ACM Press}
}
Years of Citing Articles
OpenURL
Abstract
Wadler's deforestation algorithm eliminates intermediate data structures from functional programs. To be suitable for inclusion in a compiler, it must terminate on all programs. Several techniques to ensure termination of deforestation on all first-order programs are known, but a technique for higher-order programs was only recently introduced by Hamilton, and elaborated and implemented in the Glasgow Haskell compiler by Marlow. We introduce a new technique for ensuring termination of deforestation on all higher-order programs that allows useful transformation steps prohibited in Hamilton's and Marlowe's techniques. 1 Introduction Lazy, higher-order, functional programming languages lend themselves to a certain style of programming which uses intermediate data structures [28]. Example 1 Consider the following program. letrec a = x; y:case x of [] ! y (h : t) ! h : a t y in u; v; w: a (a u v) w The term u; v; w:a (a u v) w appends the three lists u, v, and w. Appending u and v ...







