Choreographies as Functions

We propose a new interpretation of choreographies as functions, whereby coordination protocols for concurrent and distributed systems are expressed in terms of a λ-calculus. Our language is expressive enough to enable, for the first time, the writing of higher-order protocols that do not require central control. Nevertheless, it retains the simplicity and elegance of the λ-calculus, and it is possible to translate choreographies into endpoint implementations. 2012 ACM Subject Classification Theory of computation → Lambda calculus; Theory of computation → Distributed computing models; Computing methodologies → Distributed programming languages

[1]  Gary Brown,et al.  Scribbling Interactions with a Formal Foundation , 2011, ICDCIT.

[2]  Roger M. Needham,et al.  Using encryption for authentication in large networks of computers , 1978, CACM.

[3]  Romain Demangeon,et al.  Nested Protocols in Session Types , 2012, CONCUR.

[4]  Nobuko Yoshida,et al.  Multiparty Session Types Meet Communicating Automata , 2012, ESOP.

[5]  Deepak Garg,et al.  Pirouette: higher-order typed functional choreographies , 2022, Proceedings of the ACM on Programming Languages.

[6]  Chao Cai,et al.  Towards the theoretical foundation of choreography , 2007, WWW '07.

[7]  S. Giallorenzo Multiparty Languages: The Choreographic and Multitier Cases , 2021 .

[8]  Nobuko Yoshida,et al.  Structured Communication-Centered Programming for Web Services , 2007, TOPL.

[9]  Peter W. O'Hearn Experience Developing and Deploying Concurrency Analysis at Facebook , 2018, SAS.

[10]  Yuanyuan Zhou,et al.  Learning from mistakes: a comprehensive study on real world concurrency bug characteristics , 2008, ASPLOS.

[11]  Shan Lu,et al.  TaxDC: A Taxonomy of Non-Deterministic Concurrency Bugs in Datacenter Distributed Systems , 2016, ASPLOS.

[12]  Ivan Lanese,et al.  Foundations of Session Types and Behavioural Contracts , 2016, ACM Comput. Surv..

[13]  Fabrizio Montesi,et al.  Deadlock-freedom-by-design: multiparty asynchronous global programming , 2013, POPL.

[14]  Whitfield Diffie,et al.  New Directions in Cryptography , 1976, IEEE Trans. Inf. Theory.

[15]  A. Church A Set of Postulates for the Foundation of Logic , 1932 .

[16]  Luca Padovani,et al.  On Global Types and Multi-party Sessions , 2011, FMOODS/FORTE.

[17]  Susanne Graf,et al.  Formal Techniques for Distributed Objects, Components, and Systems , 2015, Lecture Notes in Computer Science.

[18]  Mario Bravetti,et al.  Towards a Unifying Theory for Choreography Conformance and Contract Compliance , 2007, SC@ETAPS.

[19]  Kai Heussen,et al.  Choreographing cyber-physical distributed control systems for the energy sector , 2017, SAC.

[20]  Ivan Lanese,et al.  Dynamic Choreographies: Theory And Implementation , 2017, Log. Methods Comput. Sci..

[21]  Frank Pfenning,et al.  A symmetric modal lambda calculus for distributed computing , 2004, Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science, 2004..

[22]  Nobuko Yoshida,et al.  Compiling first-order functions to session-typed parallel code , 2020, CC.

[23]  Nobuko Yoshida,et al.  Multiparty asynchronous session types , 2008, POPL '08.

[24]  Samik Basu,et al.  Deciding choreography realizability , 2012, POPL '12.

[25]  Rajeev Alur,et al.  Inference of message sequence charts , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[26]  Luís Cruz-Filipe,et al.  Choreographies in Practice , 2016, FORTE.

[27]  Flemming Nielson,et al.  Discretionary Information Flow Control for Interaction-Oriented Specifications , 2015, Logic, Rewriting, and Concurrency.

[28]  Luís Cruz-Filipe,et al.  Procedural Choreographic Programming , 2017, FORTE.

[29]  Ivan Lanese,et al.  ChIP: A Choreographic Integration Process , 2018, OTM Conferences.

[30]  Luís Cruz-Filipe,et al.  A Core Model for Choreographic Programming , 2015, FACS.

[31]  Davide Ancona,et al.  Behavioral Types in Programming Languages , 2016, Found. Trends Program. Lang..