Modular Choreographies: Bridging Alice and Bob Notation to Java

Luís Cruz-Filipe, Anne Madsen, Fabrizio Montesi, Marco Peressotti [2022].
In proceedings of Microservices 2022, pp. 3:1-3:18.

We present Modular Choreographies, a new choreographic programming language that features modular functions. Modular Choreographies is aimed at simplicity: its communication abstraction follows the simple tradition from the "Alice and Bob" notation. We develop a compiler toolchain that translates choreographies into modular Java libraries, which developers can use to participate correctly in choreographies. The key novelty is to compile through the Choral language, which was previously proposed to define object-oriented choreographies: our toolchain compiles Modular Choreographies to Choral, and then leverages the existing Choral compiler to generate Java code. Our work is the first to bridge the simplicity of traditional choreographic programming languages with the requirement of generating modular libraries in a mainstream language (Java).
Additional notes
Cite (BibTeX)
Click to expand
  author       = {Lu{\'{\i}}s Cruz{-}Filipe and
                  Anne Madsen and
                  Fabrizio Montesi and
                  Marco Peressotti},
  editor       = {Gokila Dorai and
                  Maurizio Gabbrielli and
                  Giulio Manzonetto and
                  Aomar Osmani and
                  Marco Prandini and
                  Gianluigi Zavattaro and
                  Olaf Zimmermann},
  title        = {Modular Choreographies: Bridging Alice and Bob Notation to Java},
  booktitle    = {Joint Post-proceedings of the Third and Fourth International Conference
                  on Microservices, Microservices 2020/2022, May 10-12, 2022, Paris,
  series       = {OASIcs},
  volume       = {111},
  pages        = {3:1--3:18},
  publisher    = {Schloss Dagstuhl - Leibniz-Zentrum f{\"{u}}r Informatik},
  year         = {2022},
  url          = {},
  doi          = {10.4230/OASICS.MICROSERVICES.2020-2022.3},
  timestamp    = {Mon, 05 Feb 2024 20:35:37 +0100},
  biburl       = {},
  bibsource    = {dblp computer science bibliography,}

A PDF is available (possibly a preprint):

Download PDF