TY - JOUR
T1 - Multiple intermediate structure deforestation by shortcut fusion
AU - Pardo, Alberto
AU - Fernandes, João Paulo
AU - Saraiva, João
N1 - Publisher Copyright:
© 2016 Elsevier B.V.
PY - 2016/12/15
Y1 - 2016/12/15
N2 - Shortcut fusion is a well-known optimization technique for functional programs. Its aim is to transform multi-pass algorithms into single pass ones, achieving deforestation of the intermediate structures that multi-pass algorithms need to construct. Shortcut fusion has already been extended in several ways. It can be applied to monadic programs, maintaining the global effects, and also to obtain circular and higher-order programs. The techniques proposed so far, however, only consider programs defined as the composition of a single producer with a single consumer. In this paper, we analyse shortcut fusion laws to deal with programs consisting of an arbitrary number of function compositions.
AB - Shortcut fusion is a well-known optimization technique for functional programs. Its aim is to transform multi-pass algorithms into single pass ones, achieving deforestation of the intermediate structures that multi-pass algorithms need to construct. Shortcut fusion has already been extended in several ways. It can be applied to monadic programs, maintaining the global effects, and also to obtain circular and higher-order programs. The techniques proposed so far, however, only consider programs defined as the composition of a single producer with a single consumer. In this paper, we analyse shortcut fusion laws to deal with programs consisting of an arbitrary number of function compositions.
KW - Circular programming
KW - Deforestation
KW - Functional programming
KW - Shortcut fusion
UR - http://www.scopus.com/inward/record.url?scp=84992741388&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84992741388&partnerID=8YFLogxK
U2 - 10.1016/j.scico.2016.07.004
DO - 10.1016/j.scico.2016.07.004
M3 - Article
AN - SCOPUS:84992741388
SN - 0167-6423
VL - 132
SP - 77
EP - 95
JO - Science of Computer Programming
JF - Science of Computer Programming
ER -