TY - CHAP
T1 - Cutting Out Continuations
AU - Bahr, Patrick
AU - Hutton, Graham
PY - 2016/3/25
Y1 - 2016/3/25
N2 - In the field of program transformation, one often transforms programs into continuation-passing style to make their flow of control explicit, and then immediately removes the resulting continuations using defunctionalisation to make the programs first-order. In this article, we show how these two transformations can be fused together into a single transformation step that cuts out the need to first introduce and then eliminate continuations. Our approach is calculational, uses standard equational reasoning techniques, and is widely applicable.
AB - In the field of program transformation, one often transforms programs into continuation-passing style to make their flow of control explicit, and then immediately removes the resulting continuations using defunctionalisation to make the programs first-order. In this article, we show how these two transformations can be fused together into a single transformation step that cuts out the need to first introduce and then eliminate continuations. Our approach is calculational, uses standard equational reasoning techniques, and is widely applicable.
KW - program transformation
KW - continuation-passing style
KW - defunctionalisation
KW - equational reasoning
KW - first-order programs
KW - program transformation
KW - continuation-passing style
KW - defunctionalisation
KW - equational reasoning
KW - first-order programs
U2 - 10.1007/978-3-319-30936-1_10
DO - 10.1007/978-3-319-30936-1_10
M3 - Book chapter
SN - 978-3-319-30935-4
VL - 9600
T3 - Lecture Notes in Computer Science
SP - 187
EP - 200
BT - A List of Successes That Can Change the World
PB - Springer
ER -