MobilityReadingGroup

π-calculus, Session Types research at Imperial College

Multiparty Session Programming with Global Protocol Combinators
Keigo IMAI, Rumyana NEYKOVA, Nobuko YOSHIDA, Shoji YUEN
To appear in
34th European Conference on Object-Oriented Programming (ECOOP 2020)

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.

@inproceedings{INYY2020,
  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},
  pages = {9:1--9:30},
  year = 2020
}
@inproceedings{INYY2020,
  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},
  pages = {9:1--9:30},
  doi = "10.4230/LIPIcs.ECOOP.2020.9",
  year = 2020
}