Relating Functional and Imperative Session Types

10/16/2020
by   Hannes Saffrich, et al.
0

Imperative session types provide an imperative interface to session-typed communication in a functional language. Compared to functional session type APIs, the program structure is simpler at the surface, but typestate is required to model the current state of communication throughout. Most work on session types has neglected the imperative approach. We demonstrate that the functional approach subsumes previous work on imperative session types by exhibiting a typing and semantics preserving translation into a system of linear functional session types. We further show that the untyped backwards translation from the functional to the imperative calculus is semantics preserving. We restrict the type system of the functional calculus such that the backwards translation becomes type preserving. Thus, we precisely capture the difference in expressiveness of the two calculi.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/08/2019

Intrinsically-Typed Mechanized Semantics for Session Types

Session types have emerged as a powerful paradigm for structuring commun...
research
09/15/2018

Gradual Session Types

Session types are a rich type discipline, based on linear types, that li...
research
11/02/2019

Label-Dependent Session Types

Session types have emerged as a typing discipline for communication prot...
research
08/09/2022

Session Fidelity for ElixirST: A Session-Based Type System for Elixir Modules

This paper builds on prior work investigating the adaptation of session ...
research
05/19/2021

Separating Sessions Smoothly

This paper introduces Hypersequent GV (HGV), a modular and extensible co...
research
09/13/2023

EXPRESSing Session Types

To celebrate the 30th edition of EXPRESS and the 20th edition of SOS we ...
research
04/13/2023

A Logical Account of Subtyping for Session Types

We study the notion of subtyping for session types in a logical setting,...

Please sign up or login with your details

Forgot password? Click here to reset