# zbMATH — the first resource for mathematics

Session types for functional multithreading. (English) Zbl 1099.68677
Gardner, Philippa (ed.) et al., CONCUR 2004 – concurrency theory. 15th international conference, London, UK, August 31 – September 3, 2004. Proceedings. Berlin: Springer (ISBN 3-540-22940-X/pbk). Lecture Notes in Computer Science 3170, 497-511 (2004).
Summary: We define a language whose type system, incorporating session types, allows complex protocols to be specified by types and verified by static typechecking. A session type, associated with a communication channel, specifies the state transitions of a protocol and also the data types of messages associated with transitions; thus typechecking can verify both correctness of individual messages and correctness of sequences of transitions. Previously session types have mainly been studied in the context of the $$\pi$$-calculus; instead, our formulation is based on a multi-threaded functional language with side-effecting input/output operations. Our typing judgements statically describe dynamic changes in the types of channels, our channel types statically track aliasing, and our function types not only specify argument and result types but also describe changes in channels. We formalize the syntax, semantics and typing rules of our language, and prove subject reduction and runtime type safety theorems.
For the entire collection see [Zbl 1058.68006].

##### MSC:
 68Q85 Models and methods for concurrent and distributed computing (process algebras, bisimulation, transition nets, etc.) 68N30 Mathematical aspects of software engineering (specification, verification, metrics, requirements, etc.)
Full Text: