PLDI 2024
Mon 24 - Fri 28 June 2024 Copenhagen, Denmark
Wed 26 Jun 2024 11:20 - 11:40 at Sweden - Parsing and Compiling and Transforming Chair(s): Stephen Kell

Choreographies are coordination plans for concurrent and distributed systems, which define the roles of the involved participants and how they are supposed to work together. In the paradigm of choreographic programming, choreographies are programs that can be compiled into executable implementations.

In this article, 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 idea to reconstruct the paradigm of choreographic programming through object-oriented abstractions. Choreographies are classes, and instances of choreographies are objects with states and behaviours implemented collaboratively by roles.

Choral comes with a compiler that, given a choreography, generates an implementation for each of its roles. These implementations are libraries in pure Java, whose types are under the control of the Choral programmer. Developers can then modularly compose these libraries in their programs, to participate correctly in choreographies. Choral is the first incarnation of choreographic programming offering such modularity, which finally connects more than a decade of research on the paradigm to practical software development.

The integration of choreographic and object-oriented programming yields other powerful advantages, where the features of one paradigm benefit the other in ways that go beyond the sum of the parts. On the one hand, the high-level abstractions and static checks from the world of choreographies can be used to write concurrent and distributed object-oriented software more concisely and correctly. On the other hand, we obtain a much more expressive choreographic language from object-oriented abstractions than in previous work. This expressivity allows for writing more reusable and flexible choreographies. For example, object passing makes Choral the first higher-order choreographic programming language, whereby choreographies can be parameterised over other choreographies without any need for central coordination. We also extend method overloading to a new dimension: specialisation based on data location. Together with subtyping and generics, this allows Choral to elegantly support user-defined communication mechanisms and middleware.

Wed 26 Jun

Displayed time zone: Windhoek change

10:40 - 12:20
Parsing and Compiling and Transforming PLDI Research Papers at Sweden
Chair(s): Stephen Kell University of Kent
10:40
20m
Talk
Daedalus: Safer Document Parsing
PLDI Research Papers
Iavor Diatchki Galois, Inc., Mike Dodds Galois, Inc., Harrison Goldstein University of Pennsylvania, Bill Harris Galois, David Holland Galois, Benoit Razet Galois, Inc, Cole Schlesinger Galois, Simon Winwood Galois
DOI
11:00
20m
Talk
SpEQ: Translation of Sparse Codes using Equivalences
PLDI Research Papers
Avery Laird University of Toronto, Bangtian Liu University of Toronto, Nikolaj Bjørner Microsoft Research, Maryam Mehri Dehnavi University of Toronto
DOI Pre-print
11:20
20m
Talk
[TOPLAS] Choral: Object-Oriented Choreographic Programming
PLDI Research Papers
Saverio Giallorenzo Alma Mater Studiorum - Università di Bologna / INRIA, Fabrizio Montesi University of Southern Denmark, Marco Peressotti University of Southern Denmark
Link to publication DOI
11:40
20m
Talk
Compiling with Abstract Interpretation
PLDI Research Papers
Dorian Lesbre CEA List, Matthieu Lemerre Université Paris-Saclay - CEA LIST
DOI
12:00
20m
Talk
Don’t Write, but Return: Replacing Output Parameters with Algebraic Data Types in C-to-Rust Translation
PLDI Research Papers
DOI