Asynchronous Effects

PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL(2021)

引用 5|浏览0
暂无评分
摘要
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 lambda(ae). We demonstrate the flexibility of lambda(ae) 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 lambda(as)'s type safety proofs in Agda, and a prototype implementation of lambda(ae) in OCaml.
更多
查看译文
关键词
algebraic effects, asynchrony, concurrency, interrupt handling, signals
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要