Alice or Bob?: Process polymorphism in choreographies
Guardado en:
| Publicado en: | Journal of Functional Programming vol. 34 (Jan 2024) |
|---|---|
| Autor principal: | |
| Otros Autores: | , |
| Publicado: |
Cambridge University Press
|
| Materias: | |
| Acceso en línea: | Citation/Abstract Full Text - PDF |
| Etiquetas: |
Sin Etiquetas, Sea el primero en etiquetar este registro!
|
| Resumen: | We present PolyChor<inline-formula><inline-graphic mime-subtype="png" xlink:href="S0956796823000114_inline1.png" />\(\lambda\)</inline-formula>, 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<inline-formula><inline-graphic mime-subtype="png" xlink:href="S0956796823000114_inline2.png" />\(\lambda\)</inline-formula>, PolyChor<inline-formula><inline-graphic mime-subtype="png" xlink:href="S0956796823000114_inline3.png" />\(\lambda\)</inline-formula> has both type and process polymorphism inspired by System F<inline-formula><inline-graphic mime-subtype="png" xlink:href="S0956796823000114_inline4.png" />\(_\omega\)</inline-formula>. That is, PolyChor<inline-formula><inline-graphic mime-subtype="png" xlink:href="S0956796823000114_inline5.png" />\(\lambda\)</inline-formula> 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<inline-formula><inline-graphic mime-subtype="png" xlink:href="S0956796823000114_inline6.png" />\(\lambda\)</inline-formula> processes to communicate distributed values, leading to a new and intuitive way to write delegation. While some of the functional features of PolyChor<inline-formula><inline-graphic mime-subtype="png" xlink:href="S0956796823000114_inline7.png" />\(\lambda\)</inline-formula> 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. |
|---|---|
| ISSN: | 0956-7968 1469-7653 |
| DOI: | 10.1017/S0956796823000114 |
| Fuente: | Advanced Technologies & Aerospace Database |