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...
Saved in:
| Published in: | Proceedings of ACM on programming languages Vol. 3; no. POPL; pp. 1 - 29 |
|---|---|
| Main Authors: | , , , |
| 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 |