Linear type theory for asynchronous session types

Abstract

Session types support a type-theoretic formulation of structured patterns of communication, so that the communication behaviour of agents in a distributed system can be verified by static type checking. Applications include network protocols, business processes, and operating system services. In this paper we define a multithreaded functional language with session types, which unifies, simplifies and extends previous work. There are four main contributions. First: an operational semantics with buffered channels, instead of the synchronous communication of previous work. Second: we prove that the session type of a channel gives an upper bound on the necessary size of the buffer. Third: session types are manipulated by means of the standard structures of a linear type theory, rather than by means of new forms of typing judgement. Fourth: a notion of subtyping, including the standard subtyping relation for session types (imported into the functional setting), and a novel form of subtyping between standard and linear function types which allows the typechecker to handle linear types conveniently. Our new approach significantly simplifies session types in the functional setting, clarifies their essential features, and provides a secure foundation for language developments such as polymorphism and object-orientation.

DOI: 10.1017/S0956796809990268

Extracted Key Phrases

020402008200920102011201220132014201520162017
Citations per Year

128 Citations

Semantic Scholar estimates that this publication has 128 citations based on the available data.

See our FAQ for additional information.

Cite this paper

@article{Gay2010LinearTT, title={Linear type theory for asynchronous session types}, author={Simon J. Gay and Vasco Thudichum Vasconcelos}, journal={J. Funct. Program.}, year={2010}, volume={20}, pages={19-50} }