Show simple item record

dc.contributor.authorFowler, Simon
dc.contributor.authorLindley, Sam
dc.contributor.authorMorris, J. Garrett
dc.contributor.authorDecova, Sára
dc.date.accessioned2021-02-09T20:14:07Z
dc.date.available2021-02-09T20:14:07Z
dc.date.issued2019-01
dc.identifier.citationSimon Fowler, Sam Lindley, J. Garrett Morris, and Sára Decova. 2019. Exceptional asynchronous session types: session types without tiers. Proc. ACM Program. Lang. 3, POPL, Article 28 (January 2019), 29 pages. DOI:https://doi.org/10.1145/3290341en_US
dc.identifier.urihttp://hdl.handle.net/1808/31399
dc.descriptionThis work is licensed under a Creative Commons Attribution 4.0 International License.en_US
dc.description.abstractSession 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.
en_US
dc.publisherAssociation for Computing Machinery (ACM)en_US
dc.rights© 2019 Copyright held by the owner/author(s).en_US
dc.rights.urihttp://creativecommons.org/licenses/by/4.0/en_US
dc.subjectFunctional languagesen_US
dc.subjectConcurrent programming languagesen_US
dc.subjectDeadlocksen_US
dc.subjectSession typesen_US
dc.subjectAsynchronyen_US
dc.subjectExceptionsen_US
dc.subjectWeb programmingen_US
dc.titleExceptional asynchronous session types: Session types without tiersen_US
dc.typeArticleen_US
kusw.kuauthorMorris, J. Garrett
kusw.kudepartmentElectrical Engineering & Computer Scienceen_US
dc.identifier.doi10.1145/3290341en_US
kusw.oaversionScholarly/refereed, publisher versionen_US
kusw.oapolicyThis item meets KU Open Access policy criteria.en_US
dc.rights.accessrightsopenAccessen_US


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record

© 2019 Copyright held by the owner/author(s).
Except where otherwise noted, this item's license is described as: © 2019 Copyright held by the owner/author(s).