@article{eprints3695, publisher = {ACM}, pages = {1--36}, journal = {ACM Computing Surveys}, author = {Hans Huttel and Ivan Lanese and Vasco Thudichum Vasconcelos and Luis Caires and Marco Carbone and Pierre-Malo Deni{\'e}lou and Dimitris Mostrous and Luca Padovani and Antonio Ravara and Emilio Tuosto and Hugo Torres Vieira and Gianluigi Zavattaro}, year = {2016}, title = {Foundations of Session Types and Behavioural Contracts}, number = {1}, volume = {49}, url = {http://eprints.imtlucca.it/3695/}, abstract = {Behavioural type systems, usually associated to concurrent or distributed computations, encompass concepts such as interfaces, communication protocols, and contracts, in addition to the traditional input/output operations. The behavioural type of a software component specifies its expected patterns of interaction using expressive type languages, so types can be used to determine automatically whether the component interacts correctly with other components. Two related important notions of behavioural types are those of session types and behavioural contracts. This article surveys the main accomplishments of the last 20 years within these two approaches.} }