Choreographies for Reactive Programming
Marco Carbone (1), Fabrizio Montesi (2), Hugo Torres Vieira (3) ((1), IT University of Copenhagen, (2) University of Southern Denmark, (3) IMT, School for Advanced Studies Lucca)

TL;DR
This paper introduces a language for modular development of distributed systems using choreographies to specify communication protocols, enabling reusability, substitution, and safe composition of components.
Contribution
It presents a novel language that separates component behavior and choreographies, with a compilation approach and a typing discipline ensuring safety and progress.
Findings
Language supports reusability and substitution of components and choreographies.
Compilation into operational semantics is proven correct.
Typing discipline guarantees communication safety and system progress.
Abstract
Modular programming is a cornerstone in software development, as it allows to build complex systems from the assembly of simpler components, and support reusability and substitution principles. In a distributed setting, component assembly is supported by communication that is often required to follow a prescribed protocol of interaction. In this paper, we present a language for the modular development of distributed systems, where the assembly of components is supported by a choreography that specifies the communication protocol. Our language allows to separate component behaviour, given in terms of reactive data ports, and choreographies, specified as first class entities. This allows us to consider reusability and substitution principles for both components and choreographies. We show how our model can be compiled into a more operational perspective in a provably-correct way, and we…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsFormal Methods in Verification · Embedded Systems Design Techniques · Advanced Software Engineering Methodologies
