Types and Terms Translated: Unrestricted Resources in Encoding Functions as Processes (Extended Version)

12/02/2021
by   Joseph W. N. Paulus, et al.
0

Type-preserving translations are effective rigorous tools in the study of core programming calculi. In this paper, we develop a new typed translation that connects sequential and concurrent calculi; it is governed by expressive type systems that control resource consumption. Our main contribution is the source language, a new resource λ-calculus with non-determinism and failures, dubbed . In , resources are sharply separated into linear and unrestricted; failures are explicit and arise following this separation. We equip with a type system based on non-idempotent intersection types, which controls resources and fail-prone computation. The target language is an existing session-typed π-calculus, sπ, which results from a Curry-Howard correspondence between linear logic and session types for concurrency. Our typed translation of into sπ subsumes our prior work; interestingly, it elegantly treats unrestricted resources in as client-server session behaviors in sπ.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/30/2021

Non-Deterministic Functions as Non-Deterministic Processes (Extended Version)

We study encodings of the lambda-calculus into the pi-calculus in the un...
research
05/02/2022

Functions as Processes: The Case of Collapsing Non-determinism

This paper studies typed translations of λ-calculi into π-calculi, both ...
research
09/12/2022

A Bunch of Sessions: A Propositions-as-Sessions Interpretation of Bunched Implications in Channel-Based Concurrency

The emergence of propositions-as-sessions, a Curry-Howard correspondence...
research
05/19/2021

Separating Sessions Smoothly

This paper introduces Hypersequent GV (HGV), a modular and extensible co...
research
08/16/2022

Asynchronous Functional Sessions: Cyclic and Concurrent (Extended Version)

We present Concurrent GV (CGV), a functional calculus with message-passi...
research
10/24/2019

A Polymorphic RPC Calculus

The RPC calculus is a simple semantic foundation for multi-tier programm...
research
12/24/2020

Rast: A Language for Resource-Aware Session Types

Traditional session types prescribe bidirectional communication protocol...

Please sign up or login with your details

Forgot password? Click here to reset