Fusing Session-Typed Concurrent Programming into Functional Programming

We introduce FuSes, a Functional programming language that integrates Session-typed concurrent process calculus code. A functional layer sits on top of a session-typed process layer. To generate and reason about open session-typed processes, the functional layer uses the contextual box modality exte...

Celý popis

Uložené v:
Podrobná bibliografia
Vydané v:Proceedings of ACM on programming languages Ročník 9; číslo ICFP; s. 435 - 462
Hlavní autori: Sano, Chuta, Garg, Deepak, Kavanagh, Ryan, Pientka, Brigitte, Toninho, Bernardo
Médium: Journal Article
Jazyk:English
Vydavateľské údaje: New York, NY, USA ACM 05.08.2025
Predmet:
ISSN:2475-1421, 2475-1421
On-line prístup:Získať plný text
Tagy: Pridať tag
Žiadne tagy, Buďte prvý, kto otaguje tento záznam!
Popis
Shrnutí:We introduce FuSes, a Functional programming language that integrates Session-typed concurrent process calculus code. A functional layer sits on top of a session-typed process layer. To generate and reason about open session-typed processes, the functional layer uses the contextual box modality extended with linear channel contexts. Due to the fundamental differences between the operational semantics of the functional layer and the concurrent semantics of processes, we bridge the two layers using a set of primitives to run and observe the behavior of closed processes within the functional layer. In addition, FuSes supports code analysis and manipulation of open session-typed process code. To showcase its benefit to programmers we implement well-known optimizations as type-safe metaprograms over concurrent processes such as batch optimizations. Our technical contributions include a type system for FuSes, an operational semantics, a proof of its type safety, and its implementation.
ISSN:2475-1421
2475-1421
DOI:10.1145/3747519