
Автор: Simon J. Gay, Vasco T. Vasconcelos
Издательство: Cambridge University Press
Год: 2025
Страниц: 247
Язык: английский
Формат: pdf
Размер: 10.1 MB
The topic of session types concerns the use of programming language type systems to specify and verify the communication behaviour of programs. Just as data types describe the structure of data and constrain the operations that can be performed on it, session types describe the structure of communication and constrain the communication operations that can be performed. A session type is a formal description of a communication protocol, made accessible to programming language tools such as typecheckers, compilers, IDEs and runtime monitors. Written by leading researchers in the field, this is the first text to provide a comprehensive introduction to the key concepts of session types. The thorough theoretical treatment is complemented by examples and exercises, suitable for use in a lecture course or for self-study. It serves as an entry point to the topic for graduate students and researchers. Programming languages allow data structures to be codified as data types, and programming tools and environments use data types as the basis for analysis and verification. This could be at compile time, in languages such as Java, C, Scala and Haskell, or at run time, in languages such as Python. Session types are type-theoretic specifications of communication protocols, so that protocol implementations can be verified by compile-time type checking in a programming language.