Emilio's web page

Design By Contracts and Behavioural Types

Academic year 2025/26

Auxiliary course
Lecturer: HernĂ¡n C. Melgratti, CONICET and U. of Buenos Aires, AR
The design-by-contract approach promotes the usage of executable specifications to describe the mutual obligations that regulate the interaction between different modules. Contracts are embedded in code and checked at runtime to help developers identify faulty modules. Behavioural types instead provide a description of the interaction aspects of a program and are used to specify the communication protocols that regulate the communication among distributed components. In this course we will present the current approaches for combining contracts and behavioural types. We will cover the following topics: Design-by-Contract approach (DbC), Higher-order contracts (Findler & Felleisen), Binary Session Types, Chaperone contracts for session types, Multiparty Session Types (MST), DbC for MST, Dependent Session Types, Dependent types and smart contracts. The course requires no prior knowledge of the subjects.

References and material