License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.ECOOP.2020.9
URN: urn:nbn:de:0030-drops-131662
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2020/13166/
Imai, Keigo ;
Neykova, Rumyana ;
Yoshida, Nobuko ;
Yuen, Shoji
Multiparty Session Programming With Global Protocol Combinators
Abstract
Multiparty Session Types (MPST) is a typing discipline for communication protocols. It ensures the absence of communication errors and deadlocks for well-typed communicating processes. The state-of-the-art implementations of the MPST theory rely on (1) runtime linearity checks to ensure correct usage of communication channels and (2) external domain-specific languages for specifying and verifying multiparty protocols.
To overcome these limitations, we propose a library for programming with global combinators - a set of functions for writing and verifying multiparty protocols in OCaml. Local behaviours for all processes in a protocol are inferred at once from a global combinator. We formalise global combinators and prove a sound realisability of global combinators - a well-typed global combinator derives a set of local types, by which typed endpoint programs can ensure type and communication safety. Our approach enables fully-static verification and implementation of the whole protocol, from the protocol specification to the process implementations, to happen in the same language.
We compare our implementation to untyped and continuation-passing style implementations, and demonstrate its expressiveness by implementing a plethora of protocols. We show our library can interoperate with existing libraries and services, implementing DNS (Domain Name Service) protocol and the OAuth (Open Authentication) protocol.
BibTeX - Entry
@InProceedings{imai_et_al:LIPIcs:2020:13166,
author = {Keigo Imai and Rumyana Neykova and Nobuko Yoshida and Shoji Yuen},
title = {{Multiparty Session Programming With Global Protocol Combinators}},
booktitle = {34th European Conference on Object-Oriented Programming (ECOOP 2020)},
pages = {9:1--9:30},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-154-2},
ISSN = {1868-8969},
year = {2020},
volume = {166},
editor = {Robert Hirschfeld and Tobias Pape},
publisher = {Schloss Dagstuhl--Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/opus/volltexte/2020/13166},
URN = {urn:nbn:de:0030-drops-131662},
doi = {10.4230/LIPIcs.ECOOP.2020.9},
annote = {Keywords: Multiparty Session Types, Communication Protocol, Concurrent and Distributed Programming, OCaml}
}
Keywords: |
|
Multiparty Session Types, Communication Protocol, Concurrent and Distributed Programming, OCaml |
Collection: |
|
34th European Conference on Object-Oriented Programming (ECOOP 2020) |
Issue Date: |
|
2020 |
Date of publication: |
|
06.11.2020 |
Supplementary Material: |
|
ECOOP 2020 Artifact Evaluation approved artifact available at https://doi.org/10.4230/DARTS.6.2.18. A source code repository for the accompanying artifact is available at https://github.com/keigoi/ocaml-mpst/. |