Choreographies, Divided and Conquered

Luı́s Cruz-Filipe, Fabrizio Montesi · arXiv (Cornell University) · 2016

Choreographic Programming is a paradigm for developing concurrent software that is correct by construction, by syntactically disallowing mismatched I/O operations in programs, called choreographies. Due to their benefits, choreographies have been largely adopted for the writing of business processes and communication protocols. However, current choreography language models cannot capture many kinds of communication structures, limiting their applicability. In this paper, we present Procedural Choreographies (PC), a new language model that includes the novel feature of reusable choreographic procedures, parameterised on the processes they use. PC also combines, for the first time in choreographies, general recursion with the ability to create new processes at runtime. The combination of these features yields a powerful framework where we can write divide-and-conquer concurrent algorithms based on message passing. This enhanced expressivity makes it possible to write new behaviours that cannot be faithfully implemented (unrealisability); to tackle this issue, we endow PC with a new typing discipline that supports both decidable type checking and type inference. PC is equipped with an EndPoint Projection (EPP) that, from a well-typed choreography, synthesises a correct-byconstruction distributed implementation in a process calculus. Extending a previous line of work on choreographies, our model supports two important properties wrt the programming of concurrent algorithms: implicit parallelism and transparent projection.

Read the paper · More papers on PaperTik