Session type

In type theory, session types are used to ensure correctness in concurrent programs.

They guarantee that messages sent and received between concurrent programs are in the expected order and of the expected type.

[3] Session types are used to ensure desirable properties in concurrent and distributed systems, i.e. absence of communication errors or deadlocks, and protocol conformance.

[4] Interaction between two processes can be checked using binary session types, while interactions between more than two processes can be checked using multiparty session types.

[5] In multiparty session types interactions between all participants are described using a global type, which is then projected into local types that describe communication from the local view of each participant.

Importantly, the global type encodes the sequencing information of the communication, which would be lost if we were to use binary session types to encode the same communication.

[6] Binary session types can be described using send operations (

represents a session type

Session types have been adapted for several existing programming languages, including:

This computer science article is a stub.