English

On the Soundness of Coroutines with Snapshots

Programming Languages 2018-06-06 v1

Abstract

Coroutines are a general control flow construct that can eliminate control flow fragmentation inherent in event-driven programs, and are still missing in many popular languages. Coroutines with snapshots are a first-class, type-safe, stackful coroutine model, which unifies many variants of suspendable computing, and is sufficiently general to express iterators, single-assignment variables, async-await, actors, event streams, backtracking, symmetric coroutines and continuations. In this paper, we develop a formal model called λ\lambda_{\rightsquigarrow} (lambda-squiggly) that captures the essence of type-safe, stackful, delimited coroutines with snapshots. We prove the standard progress and preservation safety properties. Finally, we show a formal transformation from the λ\lambda_{\rightsquigarrow} calculus to the simply-typed lambda calculus with references.

Keywords

Cite

@article{arxiv.1806.01405,
  title  = {On the Soundness of Coroutines with Snapshots},
  author = {Aleksandar Prokopec and Fengyun Liu},
  journal= {arXiv preprint arXiv:1806.01405},
  year   = {2018}
}