Repository logo

Infoscience

  • English
  • French
Log In
Logo EPFL, École polytechnique fédérale de Lausanne

Infoscience

  • English
  • French
Log In
  1. Home
  2. Academic and Research Output
  3. Conferences, Workshops, Symposiums, and Seminars
  4. Theory and Practice of Coroutines with Snapshots
 
conference paper

Theory and Practice of Coroutines with Snapshots

Prokopec, Aleksandar  
•
Liu, Fengyun
2018
32nd European Conference on Object-Oriented Programming (ECOOP 2018)
32nd European Conference on Object-Oriented Programming (ECOOP 2018)

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.

  • Details
  • Metrics
Type
conference paper
DOI
10.4230/LIPICS.ECOOP.2018.3
Author(s)
Prokopec, Aleksandar  
Liu, Fengyun
Date Issued

2018

Published in
32nd European Conference on Object-Oriented Programming (ECOOP 2018)
ISBN of the book

978-3-95977-079-8

Series title/Series vol.

ConferencePaper

Start page

3:1

End page

3:32

Editorial or Peer reviewed

REVIEWED

Written at

EPFL

EPFL units
LAMP1  
Event name
32nd European Conference on Object-Oriented Programming (ECOOP 2018)
Available on Infoscience
November 27, 2018
Use this identifier to reference this record
https://infoscience.epfl.ch/handle/20.500.14299/151628
Logo EPFL, École polytechnique fédérale de Lausanne
  • Contact
  • infoscience@epfl.ch

  • Follow us on Facebook
  • Follow us on Instagram
  • Follow us on LinkedIn
  • Follow us on X
  • Follow us on Youtube
AccessibilityLegal noticePrivacy policyCookie settingsEnd User AgreementGet helpFeedback

Infoscience is a service managed and provided by the Library and IT Services of EPFL. © EPFL, tous droits réservés