English
Related papers

Related papers: A Formal Theory of Choreographic Programming

200 papers

Choreographies are global descriptions of interactions among concurrent components, most notably used in the settings of verification (e.g., Multiparty Session Types) and synthesis of correct-by-construction software (Choreographic…

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

In the paradigm of choreographic programming, the overall behaviour of a distributed system is coded as a choreography from a global viewpoint. The choreography can then be automatically projected (compiled) to a correct implementation for…

Programming Languages · Computer Science 2024-01-01 Lovro Lugović , Fabrizio Montesi

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

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

We describe several views of the semantics of a simple programming language as formal documents in the calculus of inductive constructions that can be verified by the Coq proof system. Covered aspects are natural semantics, denotational…

Logic in Computer Science · Computer Science 2007-07-10 Yves Bertot

Choreographic Programming is a paradigm for the development of concurrent software, where deadlocks are prevented syntactically. However, choreography languages are typically synchronous, whereas many real-world systems have asynchronous…

Programming Languages · Computer Science 2017-12-01 Luís Cruz-Filipe , Fabrizio Montesi

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

In purely functional programming languages imperative features, more generally computational effects are prohibited. However, non-functional lan- guages do involve effects. The theory of decorated logic provides a rigorous for- malism (with…

Logic in Computer Science · Computer Science 2014-11-27 Burak Ekici

Matching logic is a formalism for specifying, and reasoning about, mathematical structures, using patterns and pattern matching. Growing in popularity, it has been used to define many logical systems such as separation logic with recursive…

Logic in Computer Science · Computer Science 2022-09-22 Péter Bereczky , Xiaohong Chen , Dániel Horpácsi , Lucas Peña , Jan Tušil

We define a method to automatically synthesize provably-correct efficient distributed implementations from high-level global choreographies. A global choreography describes the execution and communication logic between a set of provided…

Distributed, Parallel, and Cluster Computing · Computer Science 2019-06-03 Mohamad Jaber , Yliès Falcone , Paul Attie , Al-Abbass Khalil , Rayan Hallal

The ever-growing complexity of mathematical proofs makes their manual verification by mathematicians very cognitively demanding. Autoformalization seeks to address this by translating proofs written in natural language into a formal…

Computation and Language · Computer Science 2023-01-06 Garett Cunningham , Razvan C. Bunescu , David Juedes

Formal methods for verification of programs are extended to testing of programs. Their combination is intended to lead to benefits in reliable program development, testing, and evolution. Our geometric theory of testing is intended to serve…

Software Engineering · Computer Science 2022-06-07 Bernhard Moller , Tony Hoare , Zhe Hou , Jin Song Dong

Concurrent programming often entails meticulous pairing of sends and receives between participants to avoid deadlock. Choreographic programming alleviates this burden by specifying the system as a single program. However, there are more…

Programming Languages · Computer Science 2025-05-28 Alexander Bohosian , Andrew K. Hirsch

Traditional concurrent-programming techniques require programmers to painstakingly write programs for each participant in a concurrent system. Choreographic programming, in contrast, allows a programmer to write one centralized program and…

Programming Languages · Computer Science 2026-05-25 Ashley Samuelson , Andrew K. Hirsch , Ethan Cecchetti

This paper describes a formal proof library, developed using the Coq proof assistant, designed to assist users in writing correct diagrammatic proofs, for 1-categories. This library proposes a deep-embedded, domain-specific formal language,…

Logic in Computer Science · Computer Science 2024-03-01 Benoît Guillemet , Assia Mahboubi , Matthieu Piquerez

Proof assistants are software-based tools that are used in the mechanization of proof construction and validation in mathematics and computer science, and also in certified program development. Different tools are being increasingly used in…

Formal Languages and Automata Theory · Computer Science 2015-05-04 Marcus Vinícius Midena Ramos , Ruy J. G. B. de Queiroz

We propose a formal model for distributed systems, where each participant advertises its requirements and obligations as behavioural contracts, and where multiparty sessions are started when a set of contracts allows to synthesise a…

Logic in Computer Science · Computer Science 2013-10-18 Julien Lange , Alceste Scalas

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 explore logical reasoning for the global calculus, a coordination model based on the notion of choreography, with the aim to provide a methodology for specification and verification of structured communications. Starting with an…

Programming Languages · Computer Science 2011-10-20 Marco Carbone , Davide Grohmann , Thomas T. Hildebrandt , Hugo A. López

Choreographic models support a correctness-by-construction principle in distributed programming. Also, they enable the automatic generation of correct message-based communication patterns from a global specification of the desired system…

Programming Languages · Computer Science 2022-05-16 Lorenzo Gheri , Ivan Lanese , Neil Sayers , Emilio Tuosto , Nobuko Yoshida