paperbot · PL 论文追踪

RSS

Exceptional asynchronous session types: session types without tiers

POPL 3(POPL)2019
Simon Fowler, Sam Lindley, J. Garrett Morris, Sára Decova

尚未生成 AI 速览(可能缺少 API key 或等待下次运行补跑)。

原文摘要(Abstract)

Session types statically guarantee that communication complies with a protocol. However, most accounts of session typing do not account for failure, which means they are of limited use in real applications---especially distributed applications---where failure is pervasive. We present the first formal integration of asynchronous session types with exception handling in a functional programming language. We define a core calculus which satisfies preservation and progress properties, is deadlock free, confluent, and terminating. We provide the first implementation of session types with exception handling for a fully-fledged functional programming language, by extending the Links web programming language; our implementation draws on existing work on effect handlers. We illustrate our approach through a running example of two-factor authentication, and a larger example of a session-based chat application where communication occurs over session-typed channels and disconnections are handled gracefully.

链接与引用

DOI 原文 ·

BibTeX
@article{paperbot676,
  title = {Exceptional asynchronous session types: session types without tiers},
  author = {Simon Fowler and Sam Lindley and J. Garrett Morris and Sára Decova},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {3},
  number = {POPL},
  year = {2019},
  doi = {10.1145/3290341}
}