By Davide Ancona, Università di Genova, Italy, davide.ancona@unige.it | Viviana Bono, Università di Torino, Italy, bono@di.unito.it | Mario Bravetti, Università di Bologna, Italy and INRIA, France, mario.bravetti@unibo.it | Joana Campos, Universidade de Lisboa, Portugal, jcampos@lasige.di.fc.ul.pt | Giuseppe Castagna, CNRS - Université Paris Diderot, France, Giuseppe.Castagna@cnrs.fr | Pierre-Malo Deniélou, Royal Holloway, University of London, UK, pierre-malo.denielou@rhul.ac.uk | Simon J. Gay, University of Glasgow, UK, Simon.Gay@glasgow.ac.uk | Nils Gesbert, Université Grenoble Alpes, France, nils.gesbert@grenoble-inp.fr | Elena Giachino, Università di Bologna, Italy and INRIA, France, elena.giachino@unibo.it | Raymond Hu, Imperial College London, UK, raymond.hu05@imperial.ac.uk | Einar Broch Johnsen, Universitetet i Oslo, Norway, einarj@ifi.uio.no | Francisco Martins, Universidade de Lisboa, Portugal, fmartins@di.fc.ul.pt | Viviana Mascardi, Università di Genova, Italy, viviana.mascardi@unige.it | Fabrizio Montesi, University of Southern Denmark, Denmark, fmontesi@imada.sdu.dk | Rumyana Neykova, Imperial College London, UK, rumyana.neykova10@imperial.ac.uk | Nicholas Ng, Imperial College London, UK, nickng@imperial.ac.uk | Luca Padovani, Università di Torino, Italy, luca.padovani@di.unito.it | Vasco T. Vasconcelos, Universidade de Lisboa, Portugal, vv@di.fc.ul.pt | Nobuko Yoshida, Imperial College London, UK, n.yoshida@imperial.ac.uk
A recent trend in programming language research is to use behavioral type theory to ensure various correctness properties of largescale, communication-intensive systems. Behavioral types encompass concepts such as interfaces, communication protocols, contracts, and choreography. The successful application of behavioral types requires a solid understanding of several practical aspects, from their representation in a concrete programming language, to their integration with other programming constructs such as methods and functions, to design and monitoring methodologies that take behaviors into account. This survey provides an overview of the state of the art of these aspects, which we summarize as the pragmatics of behavioral types.
A recent trend in programming language research is to use behavioral type theory to ensure various correctness properties of large-scale, communication-intensive systems. Behavioral types encompass concepts such as interfaces, communication protocols, contracts, and choreography. The successful application of behavioral types requires a solid understanding of several practical aspects, from their representation in a concrete programming language, to their integration with other programming constructs such as methods and functions, to design and monitoring methodologies that take behaviors into account.
Behavioral Types in Programming Languages provides the reader with the first comprehensive overview of the state of the art of these practical aspects, which are summarized as the pragmatics of behavioral types. Each section covers a particular programming paradigm or methodology, providing an ideal reference for programming languages researchers interested the topic, and in identifying the areas as yet unexplored.