English
Related papers

Related papers: Choreographies as Macros

200 papers

Choreographic programming is an emerging programming paradigm for concurrent and distributed systems, whereby developers write the communications that should be enacted and then a distributed implementation is automatically obtained by…

Programming Languages · Computer Science 2022-08-18 Luís Cruz-Filipe , Eva Graversen , Lovro Lugović , Fabrizio Montesi , Marco Peressotti

We present an overview of some recent efforts aimed at the development of Choreographic Programming, a programming paradigm for the production of concurrent software that is guaranteed to be correct by construction from global descriptions…

Programming Languages · Computer Science 2015-02-11 Fabrizio Montesi

A recent study of bugs in real-world concurrent and distributed systems found that, while implementations of individual protocols tend to be robust, the composition of multiple protocols and its interplay with internal computation is the…

Programming Languages · Computer Science 2017-08-09 Luís Cruz-Filipe , Fabrizio Montesi

Choreographic programming is a paradigm for writing coordination plans for distributed systems from a global point of view, from which correct-by-construction decentralised implementations can be generated automatically. Theory of…

Logic in Computer Science · Computer Science 2022-09-07 Luís Cruz-Filipe , Fabrizio Montesi , Marco Peressotti

Choreographic programming is an emerging paradigm for programming distributed systems. In choreographic programming, the programmer describes the behavior of the entire system as a single, unified program -- a choreography -- which is then…

Programming Languages · Computer Science 2023-07-21 Gan Shen , Shun Kashiwa , Lindsey Kuper

We built Chorex, a language that brings choreographic programming to Elixir as a path toward robust distributed applications. Chorex is unique among choreographic languages because it tolerates failure among actors: when an actor crashes,…

Programming Languages · Computer Science 2025-11-21 Ashton Wiersdorf , Ben Greenman

Choreographic programming (CP) is a paradigm for implementing distributed systems that uses a single global program to define the actions and interactions of all participants. Library-level CP implementations, like HasChor, integrate well…

Programming Languages · Computer Science 2025-04-25 Mako Bates , Shun Kashiwa , Syed Jafri , Gan Shen , Lindsey Kuper , Joseph P. Near

We present Pirouette, a language for typed higher-order functional choreographic programming. Pirouette offers programmers the ability to write a centralized functional program and compile it via endpoint projection into programs for each…

Programming Languages · Computer Science 2021-11-10 Andrew K. Hirsch , Deepak Garg

Functional choreographic programming suggests a new propositions-as-types paradigm might be possible. In this new paradigm, communication is not modeled linearly; instead, ownership of a piece of data is modeled as a modality, and…

Programming Languages · Computer Science 2024-06-04 Andrew K. Hirsch

Choreographies are formal descriptions of distributed systems, which focus on the way in which participants communicate. While they are useful for analysing protocols, in practice systems are written directly by specifying each…

Programming Languages · Computer Science 2022-07-20 Bjørn Angel Kjær , Luís Cruz-Filipe , Fabrizio Montesi

In this paper we propose a new approach to the description of a network of interacting processes in a traditional programming language. Special programming languages or extensions to sequential languages are usually designed to express the…

Programming Languages · Computer Science 2017-02-17 Sergey Vostokin

Choreographic programming is a programming-language design approach that drives error-safe protocol development in distributed systems. Starting from a global specification (choreography) one can generate distributed implementations. The…

Programming Languages · Computer Science 2016-11-18 Hugo A. López , Flemming Nielson , Hanne Riis Nielson

In service-oriented architecture, services coordinate in one of two ways: directly, using point-to-point communication, or indirectly, through an intermediary called the orchestrator. Orchestrators tend to be more popular because their…

Programming Languages · Computer Science 2026-03-24 Viktor Strate Kløvedal , Dan Plyukhin , Marco Peressotti , Fabrizio Montesi

Choreographic programming is a paradigm for writing distributed applications. It allows programmers to write a single program, called a choreography, that can be compiled to generate correct implementations of each process in the…

Programming Languages · Computer Science 2024-07-16 Dan Plyukhin , Marco Peressotti , Fabrizio Montesi

Choreographic programming promises a simple approach to the coding of concurrent and distributed systems: write the collective communication behaviour of a system of processes as a choreography, and then the programs for these processes are…

Programming Languages · Computer Science 2025-03-18 Eva Graversen , Fabrizio Montesi , Marco Peressotti

We present Choral, the first choreographic programming language based on mainstream abstractions. The key idea in Choral is a new notion of data type, which allows for expressing that data is distributed over different roles. We use this…

Programming Languages · Computer Science 2023-10-20 Saverio Giallorenzo , Fabrizio Montesi , Marco Peressotti

We present PolyChor$\lambda$, a language for higher-order functional \emph{choreographic programming} -- an emerging paradigm by which programmers write the desired cooperative behaviour of a system of communicating processes and then…

Programming Languages · Computer Science 2023-03-09 Eva Graversen , Andrew K. Hirsch , Fabrizio Montesi

Programming distributed applications free from communication deadlocks and race conditions is complex. Preserving these properties when applications are updated at runtime is even harder. We present a choreographic approach for programming…

Programming Languages · Computer Science 2019-03-14 Mila Dalla Preda , Maurizio Gabbrielli , Saverio Giallorenzo , Ivan Lanese , Jacopo Mauro

Choreography extraction deals with the generation of a choreography (a global description of communication behaviour) from a set of local process behaviours. In this work, we implement a previously proposed theory for extraction and show…

Programming Languages · Computer Science 2019-10-28 Luís Cruz-Filipe , Fabrizio Montesi , Larisa Safina

Real world arrays often contain underlying structure, such as sparsity, runs of repeated values, or symmetry. Specializing for structure yields significant speedups. But automatically generating efficient code for structured data is…

Programming Languages · Computer Science 2023-10-13 Willow Ahrens , Daniel Donenfeld , Fredrik Kjolstad , Saman Amarasinghe