Title
Theory and Practice of Coroutines with Snapshots.
Abstract
While event-driven programming is a widespread model for asynchronous computing, its inherent control flow fragmentation makes event-driven programs notoriously difficult to understand and maintain. Coroutines are a general control flow construct that can eliminate control flow fragmentation. However, coroutines are still missing in many popular languages. This gap is partly caused by the difficulties of supporting suspendable computations in the language runtime.We introduce first-class, type-safe, stackful coroutines with snapshots, which unify many variants of suspendable computing. Our design relies solely on the static metaprogramming support of the host language, without modifying the language implementation or the runtime. We also develop a formal model for type-safe, stackful and delimited coroutines, and we prove the respective safety properties. We show that the model is sufficiently general to express iterators, single-assignment variables, async-await, actors, event streams, backtracking, symmetric coroutines and continuations. Performance evaluations reveal that the proposed metaprogramming-based approach has a decent performance, with workload-dependent overheads of 1.03-2.11 x compared to equivalent manually written code, and improvements of up to 6 x compared to other approaches.
Year
Venue
Field
2018
ECOOP
Metaprogramming,Asynchronous communication,Coroutine,Programming language,Computer science,Control flow,Backtracking,Snapshot (computer storage),Computation
DocType
Citations 
PageRank 
Conference
1
0.36
References 
Authors
0
2
Name
Order
Citations
PageRank
Aleksandar Prokopec116313.56
Fengyun Liu212.39