implementing first-class polymorphic delimited continuations by a type-directed selective cps-transform
We describe the implementation of first-class polymorphic delimited continuations in the programming language Scala. We use Scala's pluggable typing architecture to implement a simple type and effect system, which discriminates expressions with control effects from those without and accurately tracks answer type modification incurred by control effects. To tackle the problem of implementing first-class continuations under the adverse conditions brought upon by the Java VM, we employ a selective CPS transform, which is driven entirely by effect-annotated types and leaves pure code in direct style. Benchmarks indicate that this high-level approach performs competitively.
implementation polymorphic delimited continuations continuation types direct select transformation programming language use architecture effect systems express control effects control tracking selective cps transform code benchmark program transformation class