Aarhus University Seal / Aarhus Universitets segl

A dynamic continuation-passing style for dynamic delimited continuations

Research output: Contribution to journal/Conference contribution in journal/Contribution to newspaperJournal articleResearchpeer-review

Standard

A dynamic continuation-passing style for dynamic delimited continuations. / Biernacki, Dariusz; Danvy, Olivier; Millikin, Kevin.

In: A C M Transactions on Programming Languages and Systems, Vol. 38, No. 1, 2, 2015.

Research output: Contribution to journal/Conference contribution in journal/Contribution to newspaperJournal articleResearchpeer-review

Harvard

Biernacki, D, Danvy, O & Millikin, K 2015, 'A dynamic continuation-passing style for dynamic delimited continuations', A C M Transactions on Programming Languages and Systems, vol. 38, no. 1, 2. https://doi.org/10.1145/2794078

APA

Biernacki, D., Danvy, O., & Millikin, K. (2015). A dynamic continuation-passing style for dynamic delimited continuations. A C M Transactions on Programming Languages and Systems, 38(1), [2]. https://doi.org/10.1145/2794078

CBE

Biernacki D, Danvy O, Millikin K. 2015. A dynamic continuation-passing style for dynamic delimited continuations. A C M Transactions on Programming Languages and Systems. 38(1):Article 2. https://doi.org/10.1145/2794078

MLA

Biernacki, Dariusz, Olivier Danvy and Kevin Millikin. "A dynamic continuation-passing style for dynamic delimited continuations". A C M Transactions on Programming Languages and Systems. 2015. 38(1). https://doi.org/10.1145/2794078

Vancouver

Biernacki D, Danvy O, Millikin K. A dynamic continuation-passing style for dynamic delimited continuations. A C M Transactions on Programming Languages and Systems. 2015;38(1). 2. https://doi.org/10.1145/2794078

Author

Biernacki, Dariusz ; Danvy, Olivier ; Millikin, Kevin. / A dynamic continuation-passing style for dynamic delimited continuations. In: A C M Transactions on Programming Languages and Systems. 2015 ; Vol. 38, No. 1.

Bibtex

@article{58dd2bd582a64702a81917bdd855ea87,
title = "A dynamic continuation-passing style for dynamic delimited continuations",
abstract = "We put a preexisting definitional abstract machine for dynamic delimited continuations in defunctionalized form, and we present the consequences of this adjustment. We first prove the correctness of the adjusted abstract machine. Because it is in defunctionalized form, we can refunctionalize it into a higher-order evaluation function. This evaluation function, which is compositional, is in continuation+state-passing style and threads a trail of delimited continuations and a meta-continuation. Since this style accounts for dynamic delimited continuations, we refer to it as {"}dynamic continuation-passing style{"} and we present the corresponding dynamic CPS transformation. We show that the notion of computation induced by dynamic CPS takes the form of a continuation monad with a recursive answer type. This continuation monad suggests a new simulation of dynamic delimited continuations in terms of static ones. Finally, we present new applications of dynamic delimited continuations, including a meta-circular evaluator. The significance of the present work is that the computational artifacts surrounding dynamic CPS are not independent designs: they are mechanical consequences of having put the definitional abstract machine in defunctionalized form.",
keywords = "Algorithms, Languages, Theory",
author = "Dariusz Biernacki and Olivier Danvy and Kevin Millikin",
year = "2015",
doi = "10.1145/2794078",
language = "English",
volume = "38",
journal = "A C M Transactions on Programming Languages and Systems",
issn = "0164-0925",
publisher = "Association for Computing Machinery, Inc.",
number = "1",

}

RIS

TY - JOUR

T1 - A dynamic continuation-passing style for dynamic delimited continuations

AU - Biernacki, Dariusz

AU - Danvy, Olivier

AU - Millikin, Kevin

PY - 2015

Y1 - 2015

N2 - We put a preexisting definitional abstract machine for dynamic delimited continuations in defunctionalized form, and we present the consequences of this adjustment. We first prove the correctness of the adjusted abstract machine. Because it is in defunctionalized form, we can refunctionalize it into a higher-order evaluation function. This evaluation function, which is compositional, is in continuation+state-passing style and threads a trail of delimited continuations and a meta-continuation. Since this style accounts for dynamic delimited continuations, we refer to it as "dynamic continuation-passing style" and we present the corresponding dynamic CPS transformation. We show that the notion of computation induced by dynamic CPS takes the form of a continuation monad with a recursive answer type. This continuation monad suggests a new simulation of dynamic delimited continuations in terms of static ones. Finally, we present new applications of dynamic delimited continuations, including a meta-circular evaluator. The significance of the present work is that the computational artifacts surrounding dynamic CPS are not independent designs: they are mechanical consequences of having put the definitional abstract machine in defunctionalized form.

AB - We put a preexisting definitional abstract machine for dynamic delimited continuations in defunctionalized form, and we present the consequences of this adjustment. We first prove the correctness of the adjusted abstract machine. Because it is in defunctionalized form, we can refunctionalize it into a higher-order evaluation function. This evaluation function, which is compositional, is in continuation+state-passing style and threads a trail of delimited continuations and a meta-continuation. Since this style accounts for dynamic delimited continuations, we refer to it as "dynamic continuation-passing style" and we present the corresponding dynamic CPS transformation. We show that the notion of computation induced by dynamic CPS takes the form of a continuation monad with a recursive answer type. This continuation monad suggests a new simulation of dynamic delimited continuations in terms of static ones. Finally, we present new applications of dynamic delimited continuations, including a meta-circular evaluator. The significance of the present work is that the computational artifacts surrounding dynamic CPS are not independent designs: they are mechanical consequences of having put the definitional abstract machine in defunctionalized form.

KW - Algorithms

KW - Languages

KW - Theory

UR - http://www.scopus.com/inward/record.url?scp=84946576630&partnerID=8YFLogxK

U2 - 10.1145/2794078

DO - 10.1145/2794078

M3 - Journal article

AN - SCOPUS:84946576630

VL - 38

JO - A C M Transactions on Programming Languages and Systems

JF - A C M Transactions on Programming Languages and Systems

SN - 0164-0925

IS - 1

M1 - 2

ER -