Alice or Bob?: Process polymorphism in choreographies

Eva Graversen, Andrew K. Hirsch, Fabrizio Montesi [2024].
In J. Funct. Program. 34.

Abstract
We present PolyChor $\lambda$ , a language for higher-order functional choreographic programming—an emerging paradigm for concurrent programming. In choreographic programming, programmers write the desired cooperative behaviour of a system of processes and then compile it into an implementation for each process, a translation called endpoint projection. Unlike its predecessor, Chor $\lambda$ , PolyChor $\lambda$ has both type and process polymorphism inspired by System F $_\omega$ . That is, PolyChor $\lambda$ is the first (higher-order) functional choreographic language which gives programmers the ability to write generic choreographies and determine the participants at runtime. This novel combination of features also allows PolyChor $\lambda$ processes to communicate distributed values, leading to a new and intuitive way to write delegation. While some of the functional features of PolyChor $\lambda$ give it a weaker correspondence between the semantics of choreographies and their endpoint-projected concurrent systems than some other choreographic languages, we still get the hallmark end result of choreographic programming: projected programmes are deadlock-free by design.
Links
doi.org
Additional notes
None
Cite (BibTeX)
Click to expand
@article{DBLP:journals/jfp/GraversenHM24,
  author       = {Eva Graversen and
                  Andrew K. Hirsch and
                  Fabrizio Montesi},
  title        = {Alice or Bob?: Process polymorphism in choreographies},
  journal      = {J. Funct. Program.},
  volume       = {34},
  year         = {2024},
  url          = {https://doi.org/10.1017/s0956796823000114},
  doi          = {10.1017/S0956796823000114},
  timestamp    = {Mon, 01 Apr 2024 11:15:35 +0200},
  biburl       = {https://dblp.org/rec/journals/jfp/GraversenHM24.bib},
  bibsource    = {dblp computer science bibliography, https://dblp.org}
}

A PDF is available (possibly a preprint):

Download PDF