Alice or Bob?: Process Polymorphism in Choreographies

Abstract

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.

0

Turn this paper into a lesson

ArcXiv compiles a structured reading guide from this paper's metadata: plain-English importance, contributions, prerequisite concepts, which sections to read first, flashcards, and a quiz. Grounded in the abstract, never invented.

Discussion (0)

Sign in to join the discussion.

Loading comments…