Affine Sessions

09/08/2018
by   Dimitris Mostrous, et al.
0

Session types describe the structure of communications implemented by channels. In particular, they prescribe the sequence of communications, whether they are input or output actions, and the type of value exchanged. Crucial to any language with session types is the notion of linearity, which is essential to ensure that channels exhibit the behaviour prescribed by their type without interference in the presence of concurrency. In this work we relax the condition of linearity to that of affinity, by which channels exhibit at most the behaviour prescribed by their types. This more liberal setting allows us to incorporate an elegant error handling mechanism which simplifies and improves related works on exceptions. Moreover, our treatment does not affect the progress properties of the language: sessions never get stuck.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/15/2018

Gradual Session Types

Session types are a rich type discipline, based on linear types, that li...
research
04/28/2022

Stay Safe under Panic: Affine Rust Programming with Multiparty Session Types

Communicating systems comprise diverse software components across networ...
research
01/15/2021

Manifestly Phased Communication via Shared Session Types

Session types denote message protocols between concurrent processes, all...
research
07/19/2021

Towards Probabilistic Session-Type Monitoring

We present a tool-based approach for the runtime analysis of communicati...
research
08/21/2023

Partially Typed Multiparty Sessions

A multiparty session formalises a set of concurrent communicating partic...
research
10/29/2018

Implementing Linking in Multiparty Sessions (Extended Abstract)

The fast growth of service-oriented programming (SOP) is evident in this...

Please sign up or login with your details

Forgot password? Click here to reset