DeepAI AI Chat
Log In Sign Up

Connectors meet Choreographies

by   Farhad Arbab, et al.

We present Cho-Reo-graphies (CR), a new language model that unites two powerful programming paradigms for concurrent software based on communicating processes: Choreographic Programming and Exogenous Coordination. In CR, programmers specify the desired communications among processes using a choreography, and define how communications should be concretely animated by connectors given as constraint automata (e.g., synchronous barriers and asynchronous multi-casts). CR is the first choreography calculus where different communication semantics (determined by connectors) can be freely mixed; since connectors are user-defined, CR also supports many communication semantics that were previously unavailable for choreographies. We develop a static analysis that guarantees that a choreography in CR and its user-defined connectors are compatible, define a compiler from choreographies to a process calculus based on connectors, and prove that compatibility guarantees deadlock-freedom of the compiled process implementations.


page 1

page 2

page 3

page 4


A Domain Semantics for Higher-Order Recursive Processes

The polarized SILL programming language uniformly integrates functional ...

Fairness and Observed Communication Semantics for Session-Typed Languages

Observed communication semantics provide an intuitive notion of equivale...

A denotational semantics for PROMELA addressing arbitrary jumps

PROMELA (Process Meta Language) is a high-level specification language d...

On Asynchrony and Choreographies

Choreographic Programming is a paradigm for the development of concurren...

That's Enough: Asynchrony with Standard Choreography Primitives

Choreographies are widely used for the specification of concurrent and d...

Certifying Choreography Compilation

Choreographic programming is a paradigm for developing concurrent and di...

On Composing Communicating Systems

Communication is an essential element of modern software, yet programmin...