Affiliation:
1. Oxford University, Oxford, United Kingdom
2. University of New South Wales, Sydney, Australia
Abstract
This paper presents an automatic deforestation system,
stream fusion
, based on equational transformations, that fuses a wider range of functions than existing short-cut fusion systems. In particular, stream fusion is able to fuse zips, left folds and functions over nested lists, including list comprehensions. A distinguishing feature of the framework is its simplicity: by transforming list functions to expose their structure, intermediate values are eliminated by general purpose compiler optimisations.
We have reimplemented the Haskell standard List library on top of our framework, providing stream fusion for Haskell lists. By allowing a wider range of functions to fuse, we see an increase in the number of occurrences of fusion in typical Haskell programs. We present benchmarks documenting time and space improvements.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
22 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Indexed Streams: A Formal Intermediate Representation for Fused Contraction Programs;Proceedings of the ACM on Programming Languages;2023-06-06
2. From functional to imperative: combining destination-passing style and views;Proceedings of the 8th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming;2022-06-13
3. Structured Handling of Scoped Effects;Programming Languages and Systems;2022
4. Postcondition-preserving fusion of postorder tree transformations;Proceedings of the 29th International Conference on Compiler Construction;2020-02-22
5. Towards scalable pattern-based optimization for dense linear algebra;Concurrency and Computation: Practice and Experience;2018-09-06