Exceptional Asynchronous Session Types: Session Types without Tiers
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.
Presentation Slides (zap-popl-final.pdf) | 1.30MiB |
Wed 16 JanDisplayed time zone: Belfast change
15:21 - 16:27 | Capabilities and Session Types IResearch Papers at Sala II Chair(s): Dominic Orchard University of Kent, UK | ||
15:21 22mTalk | StkTokens: Enforcing Well-Bracketed Control Flow and Stack Encapsulation Using Linear Capabilities Research Papers Lau Skorstengaard Aarhus University, Dominique Devriese Vrije Universiteit Brussel, Belgium, Lars Birkedal Aarhus University Link to publication DOI Media Attached File Attached | ||
15:43 22mTalk | Two sides of the same coin: Session Types and Game Semantics Research Papers Link to publication DOI Pre-print Media Attached File Attached | ||
16:05 22mTalk | Exceptional Asynchronous Session Types: Session Types without Tiers Research Papers Simon Fowler The University of Edinburgh, Sam Lindley University of Edinburgh, UK, J. Garrett Morris University of Kansas, USA, Sara Décova Link to publication DOI Pre-print Media Attached File Attached |