delimited continuations
Recently Published Documents


TOTAL DOCUMENTS

49
(FIVE YEARS 2)

H-INDEX

10
(FIVE YEARS 1)

Author(s):  
JONATHAN IMMANUEL BRACHTHÄUSER ◽  
PHILIPP SCHUSTER ◽  
KLAUS OSTERMANN

Abstract Effect handlers are a promising way to structure effectful programs in a modular way. We present the Scala library Effekt, which is centered around capability passing and implemented in terms of a monad for multi-prompt delimited continuations. Effekt is the first library implementation of effect handlers that supports effect safety and effect polymorphism without resorting to type-level programming. We describe a novel way of achieving effect safety using intersection types and path-dependent types. The effect system of our library design fits well into the programming paradigm of capability passing and is inspired by the effect system of Zhang & Myers (2019, Proc. ACM Program. Lang.3(POPL), 5:1-5:29). Capabilities carry an abstract type member, which represents an individual effect type and reflects the use of the capability on the type level. We represent effect rows as the contravariant intersection of effect types. Handlers introduce capabilities and remove components of the intersection type. Reusing the existing type system of Scala, we get effect subtyping and effect polymorphism for free.


10.29007/l2wb ◽  
2018 ◽  
Author(s):  
Youyou Cong ◽  
Kenichi Asai

A stepper is a tool that displays all the steps of a program's execution. To implement a stepper, we need to reconstruct each intermediate program from the current redex and the evaluation context. We regard evaluation contexts as delimited continuations and capture them using the control operators shift and reset. This enables us to implement a stepper concisely by writing an evaluator that is close to the standard big-step interpreter. Our implementation is a non-trivial application of shift and reset.


2015 ◽  
Vol 38 (1) ◽  
pp. 1-25
Author(s):  
Dariusz Biernacki ◽  
Olivier Danvy ◽  
Kevin Millikin

2013 ◽  
Vol 13 (4-5) ◽  
pp. 533-546 ◽  
Author(s):  
TOM SCHRIJVERS ◽  
BART DEMOEN ◽  
BENOIT DESOUTER ◽  
JAN WIELEMAKER

AbstractDelimited continuationsare a famous control primitive that originates in the functional programming world. It allows the programmer to suspend and capture the remaining part of a computation in order to resume it later. We put a new Prolog-compatible face on this primitive and specify its semantics by means of a meta-interpreter. Moreover, we establish the power of delimited continuations in Prolog with several example definitions of high-level language features. Finally, we show how to easily and effectively add delimited continuations support to the WAM.


2011 ◽  
Vol 46 (9) ◽  
pp. 81-93 ◽  
Author(s):  
Marek Materzok ◽  
Dariusz Biernacki

Sign in / Sign up

Export Citation Format

Share Document