Manifestly Phased Communication via Shared Session Types
Session types denote message protocols between concurrent processes, allowing a type-safe formalization of inter-process communication. Although previous works demonstrate a well-defined notion of subtyping where processes have different perceptions of the protocol, these formulations were limited to linear session types where each channel of communication has a unique provider and client. In our work, we extend these previous formulations into the shared session type setting where channels can now have multiple clients instead of a single client. We demonstrate that this allows shared sessions to be released at a different type, allowing the encoding of phases in a shared protocol to be manifest in the session type.
READ FULL TEXT