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 forma...

Full description

Saved in:
Bibliographic Details
Published in:Proceedings of ACM on programming languages Vol. 3; no. POPL; pp. 1 - 29
Main Authors: Fowler, Simon, Lindley, Sam, Morris, J. Garrett, Decova, Sára
Format: Journal Article
Language:English
Published: New York, NY, USA ACM 02.01.2019
Subjects:
ISSN:2475-1421, 2475-1421
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
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.
AbstractList 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.
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.
ArticleNumber 28
Author Lindley, Sam
Morris, J. Garrett
Fowler, Simon
Decova, Sára
Author_xml – sequence: 1
  givenname: Simon
  surname: Fowler
  fullname: Fowler, Simon
  email: simon.fowler@ed.ac.uk
  organization: University of Edinburgh, UK
– sequence: 2
  givenname: Sam
  surname: Lindley
  fullname: Lindley, Sam
  email: sam.lindley@ed.ac.uk
  organization: University of Edinburgh, UK
– sequence: 3
  givenname: J. Garrett
  surname: Morris
  fullname: Morris, J. Garrett
  email: garrett@ittc.ku.edu
  organization: University of Kansas, USA
– sequence: 4
  givenname: Sára
  surname: Decova
  fullname: Decova, Sára
  email: sara.decova@gmail.com
  organization: University of Edinburgh, UK
BookMark eNptkEFLw0AQhRepYK3Fu6fcPEV3dmeTrDcJrQoFL3oOm-0sjaRJ2d2i-fe2tIqKpzfvzccwvHM26vqOGLsEfgOA6lYKzSXCCRsLzFUKKGD0Yz5j0xDeOOegJRZSj1k5-7C0iU3fmTYxYejsyvddvw1JoBB2cRKHDYW73zZ5b-Kq38YkNuTDBTt1pg00PeqEvc5nL-Vjunh-eCrvF6kRqoDUSahzSYg5KqGQNGYakbjIKHPgtNJLV5PFOgesyYArZEa8MCBgWaBycsLSw13r-xA8uco20ex_j940bQW82pdQHUvY8dd_-I1v1sYP_5BXB9LY9Tf0tfwEevtlUg
CitedBy_id crossref_primary_10_4204_EPTCS_420_1
crossref_primary_10_1145_3473567
crossref_primary_10_1016_j_ic_2022_104948
crossref_primary_10_1145_3632398
crossref_primary_10_1145_3563318
crossref_primary_10_1145_3547638
crossref_primary_10_1145_3485501
crossref_primary_10_1145_3457884
crossref_primary_10_1016_j_tcs_2021_08_005
crossref_primary_10_1145_3604629
crossref_primary_10_1145_3632889
crossref_primary_10_1145_3397495
crossref_primary_10_1145_3498662
crossref_primary_10_1016_j_scico_2020_102499
crossref_primary_10_1145_3552519
crossref_primary_10_4204_EPTCS_428_1
crossref_primary_10_1145_3571229
Cites_doi 10.1145/3291617
10.1145/2808098.2808100
10.1007/978-3-662-43376-8_9
10.1007/978-3-662-54434-1_9
10.1017/S0956796801004099
10.1007/978-3-540-85361-9_32
10.1145/1708016.1708027
10.1145/1411304.1411307
10.1016/j.ic.2017.06.002
10.1145/2976022.2976033
10.1007/978-3-642-32940-1_20
10.1007/978-3-319-39570-8_7
10.1145/2951913.2951921
10.1017/S0956796816000289
10.1017/S0956796809990268
10.1145/2663171.2663188
10.1007/978-3-662-43376-8_8
10.1007/978-3-662-43376-8_4
10.1017/S095679681400001X
10.1145/3033019.3033031
10.1145/2827695
10.4204/EPTCS.223.3
10.1007/978-3-540-70592-5_22
ContentType Journal Article
Copyright Owner/Author
Copyright_xml – notice: Owner/Author
DBID AAYXX
CITATION
DOI 10.1145/3290341
DatabaseName CrossRef
DatabaseTitle CrossRef
DatabaseTitleList CrossRef

DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 2475-1421
EndPage 29
ExternalDocumentID 10_1145_3290341
3290341
GrantInformation_xml – fundername: Engineering and Physical Sciences Research Council
  grantid: EP/L01503X/1, EP/K034413/1
  funderid: http://dx.doi.org/10.13039/501100000266
GroupedDBID AAKMM
AAYFX
ACM
ADPZR
AIKLT
ALMA_UNASSIGNED_HOLDINGS
EBS
GUFHI
LHSKQ
M~E
OK1
ROL
AAYXX
AEFXT
AEJOY
AKRVB
CITATION
ID FETCH-LOGICAL-a2581-f31b73e44745254e946944e026e6f1f959dfbec4b714bea1f836e08a121d845f3
ISSN 2475-1421
IngestDate Tue Nov 18 21:13:24 EST 2025
Sat Nov 29 07:45:46 EST 2025
Mon Feb 24 21:14:27 EST 2025
IsDoiOpenAccess true
IsOpenAccess true
IsPeerReviewed true
IsScholarly true
Issue POPL
Keywords asynchrony
session types
exceptions
web programming
Language English
License This work is licensed under a Creative Commons Attribution International 4.0 License.
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-a2581-f31b73e44745254e946944e026e6f1f959dfbec4b714bea1f836e08a121d845f3
OpenAccessLink https://dl.acm.org/doi/10.1145/3290341
PageCount 29
ParticipantIDs crossref_citationtrail_10_1145_3290341
crossref_primary_10_1145_3290341
acm_primary_3290341
PublicationCentury 2000
PublicationDate 2019-01-02
PublicationDateYYYYMMDD 2019-01-02
PublicationDate_xml – month: 01
  year: 2019
  text: 2019-01-02
  day: 02
PublicationDecade 2010
PublicationPlace New York, NY, USA
PublicationPlace_xml – name: New York, NY, USA
PublicationTitle Proceedings of ACM on programming languages
PublicationTitleAbbrev ACM PACMPL
PublicationYear 2019
Publisher ACM
Publisher_xml – name: ACM
References David Gerard Clarke. 2003. Object Ownership and Containment. Ph.D. Dissertation. New South Wales, Australia. AAI0806678.
Nicholas D. Matsakis and Felix S. Klock II. 2014. The Rust language. In HILT. ACM, 103–104. 10.1145/2663171.2663188
Didier Rémy. 1994. Type inference for records in a natural extension of ML. In Theoretical Aspects Of Object-Oriented Programming, Carl A. Gunter and John C. Mitchell (Eds.). MIT Press, Cambridge, MA, 67–95.
Luís Caires and Jorge A Pérez. 2017. Linearity, control effects, and behavioral types. In ESOP (Lecture Notes in Computer Science). Springer, 229–259. 10.1007/978-3-662-54434-1_9
Wen Kokke. 2018. rusty-variation : a library for deadlock-free session-typed communication in Rust. https://github.com/ wenkokke/rusty- variation . (2018).
Sam Lindley and J. Garrett Morris. 2015. A semantics for propositions as sessions. In ESOP (Lecture Notes in Computer Science), Vol. 9032. Springer, 560–584.
Ezra Cooper. 2009. Programming Language Features for Web Application Development. Ph.D. Dissertation. University of Edinburgh.
Marco Carbone, Kohei Honda, and Nobuko Yoshida. 2008. Structured interactional exceptions in session types. In CONCUR (Lecture Notes in Computer Science). Springer, 402–417. 10.1007/978-3-540-85361-9_32
Simon Fowler. 2016. An Erlang implementation of multiparty session actors. In ICE (EPTCS), Vol. 223. 36–50.
Karl Mazurak, Jianzhou Zhao, and Steve Zdancewic. 2010. Lightweight linear types in System F°. In TLDI. ACM, 77–88. 10.1145/1708016.1708027
Jorge A Pérez, Luís Caires, Frank Pfenning, and Bernardo Toninho. 2012. Linear logical relations for session-based concurrency. In ESOP (Lecture Notes in Computer Science). Springer, 539–558.
Daniel Hillerström and Sam Lindley. 2016. Liberating effects with rows and handlers. In TyDe@ICFP. ACM, 15–27. 10.1145/2976022.2976033
Gordon D. Plotkin and Matija Pretnar. 2013. Handling algebraic effects. Logical Methods in Computer Science 9, 4 (2013).
Romain Demangeon and Kohei Honda. 2012. Nested protocols in session types. In CONCUR (Lecture Notes in Computer Science), Vol. 7454. Springer, 272–286. 10.1007/978-3-642-32940-1_20
Sam Lindley and J Garrett Morris. 2017. Lightweight functional session types. In Behavioural Types: from Theory to Tools. River Publishers, 265–286.
Marco Carbone, Ornela Dardha, and Fabrizio Montesi. 2014. Progress as compositional lock-freedom. In COORDINATION (Lecture Notes in Computer Science). Springer, 49–64. 10.1007/978-3-662-43376-8_4
H. P. Barendregt. 1984. The Lambda Calculus Its Syntax and Semantics (revised ed.). Vol. 103. North Holland.
Dimitris Mostrous and Vasco Thudichum Vasconcelos. 2014. Affine Sessions. In COORDINATION (Lecture Notes in Computer Science), Vol. 8459. Springer, 115–130. 10.1007/978-3-662-43376-8_8
Rumyana Neykova and Nobuko Yoshida. 2014. Multiparty session actors. In COORDINATION (Lecture Notes in Computer Science), Vol. 8459. Springer, 131–146. 10.1007/978-3-662-43376-8_9
Ornela Dardha, Elena Giachino, and Davide Sangiorgi. 2017. Session types revisited. Inf. Comput. 256 (2017), 253–286. 10.1016/j.ic.2017.06.002
Thomas Bracht Laumann Jespersen, Philip Munksgaard, and Ken Friis Larsen. 2015. Session types for Rust. In WGP. ACM, 13–22. 10.1145/2808098.2808100
Luca Padovani. 2017. A simple library implementation of binary sessions. Journal of Functional Programming 27 (2017), e4.
Simon J Gay and Vasco T Vasconcelos. 2010. Linear type theory for asynchronous session types. Journal of Functional Programming 20, 1 (2010), 19–50. 10.1017/S0956796809990268
Alceste Scalas and Nobuko Yoshida. 2016. Lightweight session programming in scala. In ECOOP (LIPIcs), Vol. 56. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 21:1–21:28.
Robin Milner. 1999. Communicating and mobile systems: the pi calculus. Cambridge university press.
Marco Carbone, Sam Lindley, Fabrizio Montesi, Carsten Schürmann, and Philip Wadler. 2016. Coherence generalises duality: A logical explanation of multiparty session types. In CONCUR (LIPIcs), Vol. 59. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 33:1–33:15.
Sam Lindley and J Garrett Morris. 2016. Talking bananas: structural recursion for session types. In ICFP. ACM, 434–447. 10.1145/2951913.2951921
Kohei Honda. 1993. Types for dyadic interaction. In CONCUR (Lecture Notes in Computer Science). Springer, 509–523.
Kohei Honda, Vasco T Vasconcelos, and Makoto Kubo. 1998. Language primitives and type discipline for structured communication-based programming. In ESOP (Lecture Notes in Computer Science). Springer, 122–138.
Alceste Scalas, Ornela Dardha, Raymond Hu, and Nobuko Yoshida. 2017. A linear decomposition of multiparty sessions for safe distributed programming. In ECOOP (LIPIcs), Vol. 74. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 24:1–24:31.
Jérôme Vouillon. 2008. Lwt: a cooperative thread library. In ML. ACM, 3–12. 10.1145/1411304.1411307
Philip Wadler. 2014. Propositions as sessions. Journal of Functional Programming 24, 2-3 (2014), 384–418.
Raymond Hu, Nobuko Yoshida, and Kohei Honda. 2008. Session-based distributed programming in Java. In ECOOP (Lecture Notes in Computer Science). Springer, 516–541. 10.1007/978-3-540-70592-5_22
Nick Benton and Andrew Kennedy. 2001. Exceptional Syntax. Journal of Functional Programming 11, 4 (2001), 395–410. 10.1017/S0956796801004099
Tzu-Chun Chen, Malte Viering, Andi Bejleri, Lukasz Ziarek, and Patrick Eugster. 2016. A type theory for robust failure handling in distributed systems. In FORTE (Lecture Notes in Computer Science), Vol. 9688. Springer, 96–113. 10.1007/978-3-319-39570-8_7
Rumyana Neykova and Nobuko Yoshida. 2017a. Let it recover: multiparty protocol-induced recovery. In CC. ACM, 98–108. 10.1145/3033019.3033031
Rumyana Neykova and Nobuko Yoshida. 2017b. Multiparty session actors. Logical Methods in Computer Science 13, 1 (2017).
Ian Fette and Alexey Melnikov. 2011. The WebSocket Protocol. RFC 6455. RFC Editor. 70 pages. http://www.rfc- editor.org/ rfc/rfc6455.txt
Naoki Kobayashi. 2002. Type systems for concurrent programs. In 10th Anniversary Colloquium of UNU/IIST (Lecture Notes in Computer Science), Vol. 2757. Springer, 439–453.
Simon Fowler, Sam Lindley, J. Garrett Morris, and Sára Decova. 2018. Exceptional Asynchronous Session Types: Session Types without Tiers (extended version). http://www.simonjf.com/writing/zap- extended.pdf . (2018).
Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. 2007. Links: Web programming without tiers. In FMCO (Lecture Notes in Computer Science). Springer, 266–296.
Kohei Honda, Nobuko Yoshida, and Marco Carbone. 2016. Multiparty asynchronous session types. Journal of the ACM (JACM) 63, 1 (2016), 9. 10.1145/2827695
Luís Caires and Frank Pfenning. 2010. Session types as intuitionistic linear propositions. In CONCUR (Lecture Notes in Computer Science), Vol. 10. Springer, 222–236.
Manuel Adameit, Kirstin Peters, and Uwe Nestmann. 2017. Session types for link failures. In FORTE (Lecture Notes in Computer Science), Vol. 10321. Springer, 1–16.
Daniel Hillerström, Sam Lindley, Robert Atkey, and K. C. Sivaramakrishnan. 2017. Continuation passing style for effect handlers. In FSCD (LIPIcs), Vol. 84. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 18:1–18:19.
e_1_2_2_4_1
Honda Kohei (e_1_2_2_22_1)
e_1_2_2_25_1
e_1_2_2_24_1
Milner Robin (e_1_2_2_33_1)
e_1_2_2_6_1
e_1_2_2_23_1
e_1_2_2_7_1
e_1_2_2_3_1
Rémy Didier (e_1_2_2_41_1)
Kobayashi Naoki (e_1_2_2_26_1) 2002; 2757
e_1_2_2_9_1
e_1_2_2_29_1
e_1_2_2_44_1
e_1_2_2_45_1
e_1_2_2_27_1
Lindley Sam (e_1_2_2_28_1)
Caires Luís (e_1_2_2_5_1)
e_1_2_2_14_1
e_1_2_2_13_1
e_1_2_2_38_1
Honda Kohei (e_1_2_2_21_1)
Scalas Alceste (e_1_2_2_42_1) 2017; 74
Carbone Marco (e_1_2_2_8_1) 2016; 59
e_1_2_2_31_1
Cooper Ezra (e_1_2_2_12_1) 2007
e_1_2_2_19_1
e_1_2_2_32_1
e_1_2_2_18_1
e_1_2_2_17_1
e_1_2_2_34_1
Scalas Alceste (e_1_2_2_43_1) 2016; 56
e_1_2_2_16_1
e_1_2_2_35_1
Barendregt H. P. (e_1_2_2_2_1)
e_1_2_2_15_1
e_1_2_2_36_1
Neykova Rumyana (e_1_2_2_37_1) 2017
Gordon (e_1_2_2_40_1) 2013
Lindley Sam (e_1_2_2_30_1)
Adameit Manuel (e_1_2_2_1_1)
Hillerström Daniel (e_1_2_2_20_1); 84
Pérez Jorge A (e_1_2_2_39_1)
References_xml – reference: Ian Fette and Alexey Melnikov. 2011. The WebSocket Protocol. RFC 6455. RFC Editor. 70 pages. http://www.rfc- editor.org/ rfc/rfc6455.txt
– reference: Raymond Hu, Nobuko Yoshida, and Kohei Honda. 2008. Session-based distributed programming in Java. In ECOOP (Lecture Notes in Computer Science). Springer, 516–541. 10.1007/978-3-540-70592-5_22
– reference: Philip Wadler. 2014. Propositions as sessions. Journal of Functional Programming 24, 2-3 (2014), 384–418.
– reference: Wen Kokke. 2018. rusty-variation : a library for deadlock-free session-typed communication in Rust. https://github.com/ wenkokke/rusty- variation . (2018).
– reference: Alceste Scalas and Nobuko Yoshida. 2016. Lightweight session programming in scala. In ECOOP (LIPIcs), Vol. 56. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 21:1–21:28.
– reference: Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. 2007. Links: Web programming without tiers. In FMCO (Lecture Notes in Computer Science). Springer, 266–296.
– reference: Kohei Honda, Vasco T Vasconcelos, and Makoto Kubo. 1998. Language primitives and type discipline for structured communication-based programming. In ESOP (Lecture Notes in Computer Science). Springer, 122–138.
– reference: Jorge A Pérez, Luís Caires, Frank Pfenning, and Bernardo Toninho. 2012. Linear logical relations for session-based concurrency. In ESOP (Lecture Notes in Computer Science). Springer, 539–558.
– reference: Rumyana Neykova and Nobuko Yoshida. 2017a. Let it recover: multiparty protocol-induced recovery. In CC. ACM, 98–108. 10.1145/3033019.3033031
– reference: Daniel Hillerström, Sam Lindley, Robert Atkey, and K. C. Sivaramakrishnan. 2017. Continuation passing style for effect handlers. In FSCD (LIPIcs), Vol. 84. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 18:1–18:19.
– reference: Marco Carbone, Kohei Honda, and Nobuko Yoshida. 2008. Structured interactional exceptions in session types. In CONCUR (Lecture Notes in Computer Science). Springer, 402–417. 10.1007/978-3-540-85361-9_32
– reference: Luís Caires and Jorge A Pérez. 2017. Linearity, control effects, and behavioral types. In ESOP (Lecture Notes in Computer Science). Springer, 229–259. 10.1007/978-3-662-54434-1_9
– reference: Marco Carbone, Ornela Dardha, and Fabrizio Montesi. 2014. Progress as compositional lock-freedom. In COORDINATION (Lecture Notes in Computer Science). Springer, 49–64. 10.1007/978-3-662-43376-8_4
– reference: Daniel Hillerström and Sam Lindley. 2016. Liberating effects with rows and handlers. In TyDe@ICFP. ACM, 15–27. 10.1145/2976022.2976033
– reference: Sam Lindley and J Garrett Morris. 2016. Talking bananas: structural recursion for session types. In ICFP. ACM, 434–447. 10.1145/2951913.2951921
– reference: Nick Benton and Andrew Kennedy. 2001. Exceptional Syntax. Journal of Functional Programming 11, 4 (2001), 395–410. 10.1017/S0956796801004099
– reference: Simon Fowler. 2016. An Erlang implementation of multiparty session actors. In ICE (EPTCS), Vol. 223. 36–50.
– reference: Sam Lindley and J. Garrett Morris. 2015. A semantics for propositions as sessions. In ESOP (Lecture Notes in Computer Science), Vol. 9032. Springer, 560–584.
– reference: Marco Carbone, Sam Lindley, Fabrizio Montesi, Carsten Schürmann, and Philip Wadler. 2016. Coherence generalises duality: A logical explanation of multiparty session types. In CONCUR (LIPIcs), Vol. 59. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 33:1–33:15.
– reference: Thomas Bracht Laumann Jespersen, Philip Munksgaard, and Ken Friis Larsen. 2015. Session types for Rust. In WGP. ACM, 13–22. 10.1145/2808098.2808100
– reference: Nicholas D. Matsakis and Felix S. Klock II. 2014. The Rust language. In HILT. ACM, 103–104. 10.1145/2663171.2663188
– reference: Rumyana Neykova and Nobuko Yoshida. 2017b. Multiparty session actors. Logical Methods in Computer Science 13, 1 (2017).
– reference: Tzu-Chun Chen, Malte Viering, Andi Bejleri, Lukasz Ziarek, and Patrick Eugster. 2016. A type theory for robust failure handling in distributed systems. In FORTE (Lecture Notes in Computer Science), Vol. 9688. Springer, 96–113. 10.1007/978-3-319-39570-8_7
– reference: Ezra Cooper. 2009. Programming Language Features for Web Application Development. Ph.D. Dissertation. University of Edinburgh.
– reference: Gordon D. Plotkin and Matija Pretnar. 2013. Handling algebraic effects. Logical Methods in Computer Science 9, 4 (2013).
– reference: Romain Demangeon and Kohei Honda. 2012. Nested protocols in session types. In CONCUR (Lecture Notes in Computer Science), Vol. 7454. Springer, 272–286. 10.1007/978-3-642-32940-1_20
– reference: Naoki Kobayashi. 2002. Type systems for concurrent programs. In 10th Anniversary Colloquium of UNU/IIST (Lecture Notes in Computer Science), Vol. 2757. Springer, 439–453.
– reference: Karl Mazurak, Jianzhou Zhao, and Steve Zdancewic. 2010. Lightweight linear types in System F°. In TLDI. ACM, 77–88. 10.1145/1708016.1708027
– reference: Ornela Dardha, Elena Giachino, and Davide Sangiorgi. 2017. Session types revisited. Inf. Comput. 256 (2017), 253–286. 10.1016/j.ic.2017.06.002
– reference: Kohei Honda. 1993. Types for dyadic interaction. In CONCUR (Lecture Notes in Computer Science). Springer, 509–523.
– reference: Jérôme Vouillon. 2008. Lwt: a cooperative thread library. In ML. ACM, 3–12. 10.1145/1411304.1411307
– reference: Dimitris Mostrous and Vasco Thudichum Vasconcelos. 2014. Affine Sessions. In COORDINATION (Lecture Notes in Computer Science), Vol. 8459. Springer, 115–130. 10.1007/978-3-662-43376-8_8
– reference: Manuel Adameit, Kirstin Peters, and Uwe Nestmann. 2017. Session types for link failures. In FORTE (Lecture Notes in Computer Science), Vol. 10321. Springer, 1–16.
– reference: Luca Padovani. 2017. A simple library implementation of binary sessions. Journal of Functional Programming 27 (2017), e4.
– reference: Didier Rémy. 1994. Type inference for records in a natural extension of ML. In Theoretical Aspects Of Object-Oriented Programming, Carl A. Gunter and John C. Mitchell (Eds.). MIT Press, Cambridge, MA, 67–95.
– reference: Sam Lindley and J Garrett Morris. 2017. Lightweight functional session types. In Behavioural Types: from Theory to Tools. River Publishers, 265–286.
– reference: David Gerard Clarke. 2003. Object Ownership and Containment. Ph.D. Dissertation. New South Wales, Australia. AAI0806678.
– reference: Luís Caires and Frank Pfenning. 2010. Session types as intuitionistic linear propositions. In CONCUR (Lecture Notes in Computer Science), Vol. 10. Springer, 222–236.
– reference: Robin Milner. 1999. Communicating and mobile systems: the pi calculus. Cambridge university press.
– reference: H. P. Barendregt. 1984. The Lambda Calculus Its Syntax and Semantics (revised ed.). Vol. 103. North Holland.
– reference: Simon J Gay and Vasco T Vasconcelos. 2010. Linear type theory for asynchronous session types. Journal of Functional Programming 20, 1 (2010), 19–50. 10.1017/S0956796809990268
– reference: Alceste Scalas, Ornela Dardha, Raymond Hu, and Nobuko Yoshida. 2017. A linear decomposition of multiparty sessions for safe distributed programming. In ECOOP (LIPIcs), Vol. 74. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 24:1–24:31.
– reference: Rumyana Neykova and Nobuko Yoshida. 2014. Multiparty session actors. In COORDINATION (Lecture Notes in Computer Science), Vol. 8459. Springer, 131–146. 10.1007/978-3-662-43376-8_9
– reference: Kohei Honda, Nobuko Yoshida, and Marco Carbone. 2016. Multiparty asynchronous session types. Journal of the ACM (JACM) 63, 1 (2016), 9. 10.1145/2827695
– reference: Simon Fowler, Sam Lindley, J. Garrett Morris, and Sára Decova. 2018. Exceptional Asynchronous Session Types: Session Types without Tiers (extended version). http://www.simonjf.com/writing/zap- extended.pdf . (2018).
– volume: 59
  volume-title: CONCUR (LIPIcs)
  year: 2016
  ident: e_1_2_2_8_1
– ident: e_1_2_2_17_1
  doi: 10.1145/3291617
– ident: e_1_2_2_25_1
  doi: 10.1145/2808098.2808100
– ident: e_1_2_2_35_1
  doi: 10.1007/978-3-662-43376-8_9
– ident: e_1_2_2_4_1
  doi: 10.1007/978-3-662-54434-1_9
– ident: e_1_2_2_3_1
  doi: 10.1017/S0956796801004099
– ident: e_1_2_2_7_1
  doi: 10.1007/978-3-540-85361-9_32
– ident: e_1_2_2_32_1
  doi: 10.1145/1708016.1708027
– ident: e_1_2_2_27_1
– volume-title: The Lambda Calculus Its Syntax and Semantics (revised ed.)
  ident: e_1_2_2_2_1
– ident: e_1_2_2_44_1
  doi: 10.1145/1411304.1411307
– volume-title: Links: Web programming without tiers. In FMCO (Lecture Notes in Computer Science)
  year: 2007
  ident: e_1_2_2_12_1
– volume-title: Theoretical Aspects Of Object-Oriented Programming, Carl A
  ident: e_1_2_2_41_1
– ident: e_1_2_2_13_1
  doi: 10.1016/j.ic.2017.06.002
– ident: e_1_2_2_19_1
  doi: 10.1145/2976022.2976033
– ident: e_1_2_2_14_1
  doi: 10.1007/978-3-642-32940-1_20
– volume-title: Plotkin and Matija Pretnar
  year: 2013
  ident: e_1_2_2_40_1
– volume: 74
  volume-title: ECOOP (LIPIcs)
  year: 2017
  ident: e_1_2_2_42_1
– ident: e_1_2_2_9_1
  doi: 10.1007/978-3-319-39570-8_7
– ident: e_1_2_2_29_1
  doi: 10.1145/2951913.2951921
– ident: e_1_2_2_38_1
  doi: 10.1017/S0956796816000289
– volume-title: CONCUR (Lecture Notes in Computer Science)
  ident: e_1_2_2_5_1
– ident: e_1_2_2_15_1
– ident: e_1_2_2_18_1
  doi: 10.1017/S0956796809990268
– ident: e_1_2_2_31_1
  doi: 10.1145/2663171.2663188
– ident: e_1_2_2_34_1
  doi: 10.1007/978-3-662-43376-8_8
– volume: 84
  volume-title: FSCD (LIPIcs)
  ident: e_1_2_2_20_1
– volume-title: ESOP (Lecture Notes in Computer Science)
  ident: e_1_2_2_39_1
– ident: e_1_2_2_6_1
  doi: 10.1007/978-3-662-43376-8_4
– volume-title: Multiparty session actors. Logical Methods in Computer Science 13, 1
  year: 2017
  ident: e_1_2_2_37_1
– volume-title: ESOP (Lecture Notes in Computer Science)
  ident: e_1_2_2_28_1
– ident: e_1_2_2_45_1
  doi: 10.1017/S095679681400001X
– ident: e_1_2_2_36_1
  doi: 10.1145/3033019.3033031
– ident: e_1_2_2_23_1
  doi: 10.1145/2827695
– volume: 56
  volume-title: ECOOP (LIPIcs)
  year: 2016
  ident: e_1_2_2_43_1
– volume-title: Behavioural Types: from Theory to Tools
  ident: e_1_2_2_30_1
– volume-title: Communicating and mobile systems: the pi calculus
  ident: e_1_2_2_33_1
– volume-title: ESOP (Lecture Notes in Computer Science)
  ident: e_1_2_2_22_1
– ident: e_1_2_2_16_1
  doi: 10.4204/EPTCS.223.3
– ident: e_1_2_2_24_1
  doi: 10.1007/978-3-540-70592-5_22
– volume: 2757
  volume-title: 10th Anniversary Colloquium of UNU/IIST (Lecture Notes in Computer Science)
  year: 2002
  ident: e_1_2_2_26_1
– volume-title: CONCUR (Lecture Notes in Computer Science)
  ident: e_1_2_2_21_1
– volume-title: FORTE (Lecture Notes in Computer Science)
  ident: e_1_2_2_1_1
SSID ssj0001934839
Score 2.3750215
Snippet Session types statically guarantee that communication complies with a protocol. However, most accounts of session typing do not account for failure, which...
SourceID crossref
acm
SourceType Enrichment Source
Index Database
Publisher
StartPage 1
SubjectTerms Concurrent programming languages
Contextual software domains
Deadlocks
Functional languages
General programming languages
Language types
Operating systems
Process management
Software and its engineering
Software notations and tools
Software organization and properties
SubjectTermsDisplay Software and its engineering -- Software notations and tools -- General programming languages -- Language types -- Concurrent programming languages
Software and its engineering -- Software notations and tools -- General programming languages -- Language types -- Functional languages
Software and its engineering -- Software organization and properties -- Contextual software domains -- Operating systems -- Process management -- Deadlocks
Title Exceptional asynchronous session types: session types without tiers
URI https://dl.acm.org/doi/10.1145/3290341
Volume 3
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
journalDatabaseRights – providerCode: PRVHPJ
  databaseName: ROAD: Directory of Open Access Scholarly Resources
  customDbUrl:
  eissn: 2475-1421
  dateEnd: 99991231
  omitProxy: false
  ssIdentifier: ssj0001934839
  issn: 2475-1421
  databaseCode: M~E
  dateStart: 20170101
  isFulltext: true
  titleUrlDefault: https://road.issn.org
  providerName: ISSN International Centre
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV3Nb9MwFLdY4bALg8JEYUM-oF2mjDh24ni3qRog1JZKLVJvlZM5UqU1q9JSdZf97Tx_JHEZB3bgErWu5Uj-uc_v4_feQ-hTRBMK1wiYqTnPApYKGQge8iCRKpRhnoHtY7qWDPholM5moo7ork07AV6W6W4nVv8VahgDsHXq7BPgbhaFAfgMoMMTYIfnPwF_vXNMFV0FYH1f5rr8rSa6rm0JDuN1NUS4vQHjkdUk5c3CkeJrnXXc3HGG9nHVH-oIgyN2LbWroXZ6trkk2lFnO3otlm2gXzsAnI98IpcN1ndVZSsdfL84_2qpw41-Ddbx1ui3ExPSJ5X0_RQ6NQoOQOSdLMd9N7ItYjwOCLPJ0bUgpt55G_8YDzy5SrwL2npIHot-pqtk0EiElJH2dms4h-6XA_Q84rHQ7L_hg-eOE5SBrmjTqvVan918rbXkS09r8dSP6Sv00tkN-Mri_Ro9U2UXHdU9ObAT0W9Q34Mf-_BjhzY2aF_uf8UOfGzAf4t-frme9r8FrlFGIKM4JUFBScapYozrKDVTgiWCMQXmtUoKUohY3BTwX2UZJyxTkhQpTVSYShKRm5TFBT1GnfKuVO8QzkGTKUImFeegKWdg_KsULHSVUCljVage6sJ2zFe2FMrcbVIPndXbM89dbXnd4uR2bvPe43YibibWa_wx5f1f3_ABHbaH6gR1NtUvdYpe5NvNYl19NFj-Bq-gZbI
linkProvider ISSN International Centre
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Exceptional+asynchronous+session+types%3A+session+types+without+tiers&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Fowler%2C+Simon&rft.au=Lindley%2C+Sam&rft.au=Morris%2C+J.+Garrett&rft.au=Decova%2C+S%C3%A1ra&rft.date=2019-01-02&rft.pub=ACM&rft.eissn=2475-1421&rft.volume=3&rft.issue=POPL&rft.spage=1&rft.epage=29&rft_id=info:doi/10.1145%2F3290341&rft.externalDocID=3290341
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon