Asynchronous effects

Abstract

We explore asynchronous programming with algebraic effects. We complement their conventional synchronous treatment by showing how to naturally also accommodate asynchrony within them, namely, by decoupling the execution of operation calls into signalling that an operation’s implementation needs to be executed, and interrupting a running computation with the operation’s result, to which the computation can react by installing interrupt handlers. We formalise these ideas in a small core calculus, called λ æ . We demonstrate the flexibility of λ æ using examples ranging from a multi-party web application, to preemptive multi-threading, to remote function calls, to a parallel variant of runners of algebraic effects. In addition, the paper is accompanied by a formalisation of λ æ ’s type safety proofs in Agda, and a prototype implementation of λ æ in OCaml.

Document Details

Document Type
Pub Defense Publication
Publication Date
Jan 04, 2021
Source ID
10.1145/3434305

Entities

People

  • Danel Ahman
  • Matija Pretnar

Organizations

  • Air Force Office of Scientific Research
  • European Commission
  • University of Ljubljana

Tags

Fields of Study

  • Computer science

Readers

  • Mathematical Modeling and Probability Theory.
  • Parallel and Distributed Computing.
  • Systems Analysis and Design