Alice or Bob?: Process polymorphism in choreographies

Guardado en:
Detalles Bibliográficos
Publicado en:Journal of Functional Programming vol. 34 (Jan 2024)
Autor principal: Graversen, Eva
Otros Autores: Hirsch, Andrew K, Montesi, Fabrizio
Publicado:
Cambridge University Press
Materias:
Acceso en línea:Citation/Abstract
Full Text - PDF
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
Descripción
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