Foundations and Trends® in Programming Languages > Vol 3 > Issue 2-3

Behavioral Types in Programming Languages

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

 
Suggested Citation
Davide Ancona, Viviana Bono, Mario Bravetti, Joana Campos, Giuseppe Castagna, Pierre-Malo Deniélou, Simon J. Gay, Nils Gesbert, Elena Giachino, Raymond Hu, Einar Broch Johnsen, Francisco Martins, Viviana Mascardi, Fabrizio Montesi, Rumyana Neykova, Nicholas Ng, Luca Padovani, Vasco T. Vasconcelos and Nobuko Yoshida (2016), "Behavioral Types in Programming Languages", Foundations and Trends® in Programming Languages: Vol. 3: No. 2-3, pp 95-230. http://dx.doi.org/10.1561/2500000031

Publication Date: 21 Jul 2016
© 2016 D. Ancona et al.
 
Subjects
Type Theory and Type Systems,  Static and Dynamic Program Analysis,  Programming Languages for Concurrency,  Language Paradigms,  Domain Specific Languages,  Distributed computing
 

Free Preview:

Download extract

Share

Download article
In this article:
1. Introduction
2. Object-Oriented Languages
3. Functional Languages
4. High-Performance Message-Passing Systems
5. Multiagent Systems
6. Singularity OS
7. Web Services
8. Choreographies
Acknowledgments
References

Abstract

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.

DOI:10.1561/2500000031
ISBN: 978-1-68083-134-4
150 pp. $99.00
Buy book (pb)
 
ISBN: 978-1-68083-135-1
150 pp. $260.00
Buy E-book (.pdf)
Table of contents:
1. Introduction
2. Object-Oriented Languages
3. Functional Languages
4. High-Performance Message-Passing Systems
5. Multiagent Systems
6. Singularity OS
7. Web Services
8. Choreographies
Acknowledgments
References

Behavioral Types in Programming Languages

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.

 
PGL-031