TY - GEN
T1 - Watch out for that tree! A tutorial on shortcut deforestation
AU - Fernandes, João Paulo
AU - Cunha, Jácome
AU - Saraiva, João
AU - Pardo, Alberto
N1 - Publisher Copyright:
© 2019, Springer Nature Switzerland AG.
PY - 2019
Y1 - 2019
N2 - Functional programmers are strong enthusiasts of modular solutions to programming problems. Since software characteristics such as readability or maintainability are often directly proportional to modularity, this programming style naturally contributes to the beauty of functional programs. Unfortunately, in return of this beauty we often sacrifice efficiency: modular programs rely, at runtime, on the creation, use and elimination of intermediate data structures to connect its components. In this tutorial paper, we study an advanced technique that attempts to retain the best of this two worlds: (i) it allows programmers to implement beautiful, modular programs (ii) it shows how to transform such programs, in a way that can be incorporated in a compiler, into programs that do not construct any intermediate structure.
AB - Functional programmers are strong enthusiasts of modular solutions to programming problems. Since software characteristics such as readability or maintainability are often directly proportional to modularity, this programming style naturally contributes to the beauty of functional programs. Unfortunately, in return of this beauty we often sacrifice efficiency: modular programs rely, at runtime, on the creation, use and elimination of intermediate data structures to connect its components. In this tutorial paper, we study an advanced technique that attempts to retain the best of this two worlds: (i) it allows programmers to implement beautiful, modular programs (ii) it shows how to transform such programs, in a way that can be incorporated in a compiler, into programs that do not construct any intermediate structure.
UR - http://www.scopus.com/inward/record.url?scp=85071503386&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85071503386&partnerID=8YFLogxK
U2 - 10.1007/978-3-030-28346-9_1
DO - 10.1007/978-3-030-28346-9_1
M3 - Conference contribution
AN - SCOPUS:85071503386
SN - 9783030283452
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 1
EP - 41
BT - Central European Functional Programming School - 6th Summer School, CEFP 2015, Revised Selected Papers
A2 - Zsók, Viktória
A2 - Porkoláb, Zoltán
A2 - Horváth, Zoltán
PB - Springer Verlag
T2 - 6th Central European Functional Programming School, CEFP 2015
Y2 - 6 July 2015 through 10 July 2015
ER -