Alice or Bob?: Process Polymorphism in Choreographies

03/08/2023
by   Eva Graversen, et al.
0

We present PolyChorλ, a language for higher-order functional choreographic programming – an emerging paradigm by which programmers write the desired cooperative behaviour of a system of communicating processes and then compile it into distributed implementations for each process, a translation called endpoint projection. Unlike its predecessor, Chorλ, PolyChorλ has both type and process polymorphism inspired by System F_ω. That is, PolyChorλ is the first (higher-order) functional choreographic language which gives programmers the ability to write generic choreographies and determine the participants at runtime. This novel combination of features also allows PolyChorλ processes to communicate distributed values, leading to a new and intuitive way to write delegation. While some of the functional features of PolyChorλ give it a weaker correspondence between the semantics of choreographies and their endpoint-projected concurrent systems than some other choreographic languages, we still get the hallmark end result of choreographic programming: projected programs are deadlock-free by design.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/05/2021

Pirouette: Higher-Order Typed Functional Choreographies

We present Pirouette, a language for typed higher-order functional chore...
research
03/07/2023

Real-World Choreographic Programming: An Experience Report

Choreographic programming is a programming paradigm, whereby the overall...
research
03/02/2023

HasChor: Functional Choreographic Programming for All (Functional Pearl)

Choreographic programming is an emerging paradigm for programming distri...
research
08/26/2017

The Unfolding Semantics of Functional Programs

The idea of using unfolding as a way of computing a program semantics ha...
research
02/05/2020

A Domain Semantics for Higher-Order Recursive Processes

The polarized SILL programming language uniformly integrates functional ...
research
10/26/2017

Linear Haskell: practical linearity in a higher-order polymorphic language

Linear type systems have a long and storied history, but not a clear pat...
research
08/17/2021

Higher-Order Concurrency for Microcontrollers

Programming microcontrollers involves low-level interfacing with hardwar...

Please sign up or login with your details

Forgot password? Click here to reset