Higher-Order processes, functions, and sessions: a monadic integration

  • Authors:
  • Bernardo Toninho;Luis Caires;Frank Pfenning

  • Affiliations:
  • Computer Science Department, Carnegie Mellon University, Pittsburgh, PA and CITI and Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa, Lisboa, Portugal;CITI and Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa, Lisboa, Portugal;Computer Science Department, Carnegie Mellon University, Pittsburgh, PA

  • Venue:
  • ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

In prior research we have developed a Curry-Howard interpretation of linear sequent calculus as session-typed processes. In this paper we uniformly integrate this computational interpretation in a functional language via a linear contextual monad that isolates session-based concurrency. Monadic values are open process expressions and are first class objects in the language, thus providing a logical foundation for higher-order session typed processes. We illustrate how the combined use of the monad and recursive types allows us to cleanly write a rich variety of concurrent programs, including higher-order programs that communicate processes. We show the standard metatheoretic result of type preservation, as well as a global progress theorem, which to the best of our knowledge, is new in the higher-order session typed setting.