How to Remove a Dynamic Prompt: Static and Dynamic Delimited Continuation Operators Are Equally Expressible
| dc.contributor.author | Kiselyov, Oleg | |
| dc.date.accessioned | 2025-11-12T20:44:48Z | |
| dc.date.available | 2025-11-12T20:44:48Z | |
| dc.date.issued | 2005-03 | |
| dc.description.abstract | We show how to remove a dynamic prompt (aka reset) and thus to turn so-called static delimited continuation operators (shift/reset) into dynamic ones: control, control0, shift0. Our technique extends the continuation captured by shift by composing it with the previous fragments of the `stack'. Composition of context fragments can be done via regular functional composition. We thus demonstrate that all the above delimited continuation operators are macro-expressible in terms of each other --- without capturing undelimited continuations and without using mutable state. Furthermore, the operators shift, control, control0, shift0 are the members of a single parameterized family, and the standard CPS is sufficient to express their denotational semantics. We give the simplest Scheme implementation of the dynamic control operators. We give a formal simulation proof that control realized through shift indeed has its standard reduction semantics. | |
| dc.identifier.uri | https://hdl.handle.net/2022/34459 | |
| dc.relation.ispartofseries | Indiana University Computer Science Technical Reports; TR611 | |
| dc.rights | This work is protected by copyright unless stated otherwise. | |
| dc.rights.uri | ||
| dc.title | How to Remove a Dynamic Prompt: Static and Dynamic Delimited Continuation Operators Are Equally Expressible |
Files
Original bundle
1 - 1 of 1
Collections
Can’t use the file because of accessibility barriers? Contact us