Objects and session types

  • Authors:
  • Mariangiola Dezani-Ciancaglini;Sophia Drossopoulou;Dimitris Mostrous;Nobuko Yoshida

  • Affiliations:
  • Dipartimento di Informatica, Università degli Studi di Torino, Corso Svizzera 185, IT-10149 Torino, Italy;Department of Computing, Imperial College London, 180 Queen's Gate, London SW7 2AZ, UK;Department of Computing, Imperial College London, 180 Queen's Gate, London SW7 2AZ, UK;Department of Computing, Imperial College London, 180 Queen's Gate, London SW7 2AZ, UK

  • Venue:
  • Information and Computation
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

A session takes place between two parties; after establishing a connection, each party interleaves local computations and communications (sending or receiving) with the other. Session types characterise such sessions in terms of the types of values communicated and the shape of protocols, and have been developed for the @p-calculus, CORBA interfaces, and functional languages. We study the incorporation of session types into object-oriented languages through MOOSE, a multi-threaded language with session types, thread spawning, iterative, and higher-order sessions. Our design aims to consistently integrate the object-oriented programming style and sessions, and to be able to treat various case studies from the literature. We describe the design of MOOSE, its syntax, operational semantics, and type system, and develop a type inference system. After proving subject reduction, we establish the progress property: once a communication has been established, well-typed programs will never starve at communication points.