Multiparty Languages: The Choreographic and Multitier Cases (Pearl)
Saverio Giallorenzo, Fabrizio Montesi, Marco Peressotti, David Richter 0001, Guido Salvaneschi, Pascal Weisenburger
[2021].
In proceedings of ECOOP 2021, pp. 22:1-22:27.
Choreographic languages aim to express multiparty communication protocols, by providing primitives that make interaction manifest. Multitier languages enable programming computation that spans across several tiers of a distributed system, by supporting primitives that allow computation to change the location of execution. Rooted into different theoretical underpinnings—respectively process calculi and lambda calculus—the two paradigms have been investigated independently by different research communities with little or no contact. As a result, the link between the two paradigms has remained hidden for long.
In this paper, we show that choreographic languages and multitier languages are surprisingly similar. We substantiate our claim by isolating the core abstractions that differentiate the two approaches and by providing algorithms that translate one into the other in a straightforward way. We believe that this work paves the way for joint research and cross-fertilisation among the two communities.
@inproceedings{DBLP:conf/ecoop/GiallorenzoMPRS21, author = {Saverio Giallorenzo and Fabrizio Montesi and Marco Peressotti and David Richter and Guido Salvaneschi and Pascal Weisenburger}, editor = {Anders M{\o}ller and Manu Sridharan}, title = {Multiparty Languages: The Choreographic and Multitier Cases (Pearl)}, booktitle = {35th European Conference on Object-Oriented Programming, {ECOOP} 2021, July 11-17, 2021, Aarhus, Denmark (Virtual Conference)}, series = {LIPIcs}, volume = {194}, pages = {22:1--22:27}, publisher = {Schloss Dagstuhl - Leibniz-Zentrum f{\"{u}}r Informatik}, year = {2021}, url = {https://doi.org/10.4230/LIPIcs.ECOOP.2021.22}, doi = {10.4230/LIPICS.ECOOP.2021.22}, timestamp = {Wed, 21 Aug 2024 22:46:00 +0200}, biburl = {https://dblp.org/rec/conf/ecoop/GiallorenzoMPRS21.bib}, bibsource = {dblp computer science bibliography, https://dblp.org} }
A PDF is available (possibly a preprint):