arrow
Return

Borrowing from Session Types

delete2025-10-01
delete0
PRE
AI
H
Hannes Saffrich *
J
Janek Spaderna
P
Peter Thiemann
V
Vasco T. Vasconcelos
DOI:10.1145/3763173delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
Session types provide a formal framework to enforce rich communication protocols, ensuring correctness properties such as type safety and deadlock freedom. However, the traditional API of functional session type systems with first-class channels often leads to problems with modularity and composability. This paper proposes a new, alternative session type API based on borrowing, embodied in the core calculus BGV. The borrowing-based API enables building modular and composable code for session type clients without imposing clutter or undue limitations. Its basis is a novel type system, founded on ordered linear typing, for functional session types with an explicit operation for splitting ownership of channels. We establish the semantics of BGV via a type-preserving translation to PGV, a deadlock-free functional session type calculus. We establish type safety and deadlock freedom for BGV by this translation. We also present an external version of BGV that supports use of borrow notation. We developed an algorithmic version of the type system that includes a mechanized verified translation from the external language to BGV. This part establishes decidable type checking.
Keywords:
Concurrent programming
session types
ordered types

Journal

P
Proceedings of the ACM on Programming Languages-PACMPL
IF:
2.8
Papers:
308
Citations:
4.7K

Organization

U
University of Freiburg
Scholars:
3.3W
Papers: 2.4W
Citations: 3.4W
U
Universidade de Lisboa
Scholars:
3.3K
Papers: 1.5K
Citations: 1