Blogs (1) >>
POPL 2019
Sun 13 - Sat 19 January 2019 Cascais, Portugal
Wed 16 Jan 2019 16:05 - 16:27 at Sala II - Capabilities and Session Types I Chair(s): Dominic Orchard

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 Jan

15:21 - 16:27: Research Papers - Capabilities and Session Types I at Sala II
Chair(s): Dominic OrchardUniversity of Kent, UK
POPL-2019-Research-Papers15:21 - 15:43
Lau SkorstengaardAarhus University, Dominique DevrieseVrije Universiteit Brussel, Belgium, Lars BirkedalAarhus University
Link to publication DOI Media Attached File Attached
POPL-2019-Research-Papers15:43 - 16:05
Simon CastellanImperial College London, UK, Nobuko YoshidaImperial College London
Link to publication DOI Pre-print Media Attached File Attached
POPL-2019-Research-Papers16:05 - 16:27
Simon FowlerThe University of Edinburgh, Sam LindleyUniversity of Edinburgh, UK, J. Garrett MorrisUniversity of Kansas, USA, Sara Décova
Link to publication DOI Pre-print Media Attached File Attached