Back to Direct Style II: First-Class Continuations

Olivier Danvy, Julia L. Lawall
1996 BRICS Report Series  
<p>The direct-style transformation aims at mapping continuation-passing programs back to direct style, be they originally written in continuation-passing style or the result of the continuation-passing-style transformation. In this paper, we continue to investigate the direct-style transformation by extending it to programs with first-class continuations.</p><p>First-class continuations break the stack-like discipline of continuations in that they are sent results out of turn. We detect them
more » ... tactically through an analysis of continuation-passing terms. We conservatively extend the direct-style transformation towards call-by-value functional terms (the pure lambda-calculus) by translating the declaration of a first-class continuation using the control operator call/cc, and by translating an occurrence of a first-class continuation using the control operator throw. We prove that our extension and the corresponding<br />extended continuation-passing-style transformation are inverses.</p>
doi:10.7146/brics.v3i20.19982 fatcat:o22ttk3fxrhqtauf53yphn6764