Behavioral Types in Programming Languages

Davide Ancona, Viviana Bono, Mario Bravetti, Joana Campos 0002, 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, Nobuko Yoshida [2016].
In Found. Trends Program. Lang. 3.

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.
Additional notes
Cite (BibTeX)
Click to expand
  author       = {Davide Ancona and
                  Viviana Bono and
                  Mario Bravetti and
                  Joana Campos and
                  Giuseppe Castagna and
                  Pierre{-}Malo Deni{\'{e}}lou and
                  Simon J. Gay and
                  Nils Gesbert and
                  Elena Giachino and
                  Raymond Hu and
                  Einar Broch Johnsen and
                  Francisco Martins and
                  Viviana Mascardi and
                  Fabrizio Montesi and
                  Rumyana Neykova and
                  Nicholas Ng and
                  Luca Padovani and
                  Vasco T. Vasconcelos and
                  Nobuko Yoshida},
  title        = {Behavioral Types in Programming Languages},
  journal      = {Found. Trends Program. Lang.},
  volume       = {3},
  number       = {2-3},
  pages        = {95--230},
  year         = {2016},
  url          = {},
  doi          = {10.1561/2500000031},
  timestamp    = {Tue, 21 Mar 2023 21:16:07 +0100},
  biburl       = {},
  bibsource    = {dblp computer science bibliography,}

A PDF is available (possibly a preprint):

Download PDF