Choreographies in Practice

Choreographic Programming is a development methodology for concurrent software that guarantees correctness by construction. The key to this paradigm is to disallow mismatched I/O operations in programs, and mechanically synthesise process implementations. There is still a lack of practical illustrations of the applicability of choreographies to computational problems with standard concurrent solutions. In this work, we explore the potential of choreographic programming by writing concurrent algorithms for sorting, solving linear equations, and computing Fast Fourier Transforms. The lessons learned from this experiment give directions for future improvements of the paradigm.

[1]  Emilio Tuosto,et al.  From Communicating Machines to Graphical Choreographies , 2015, POPL.

[2]  Vasco Thudichum Vasconcelos,et al.  Language Primitives and Type Discipline for Structured Communication-Based Programming Revisited: Two Systems for Higher-Order Session Communication , 1998, SecReT@ICALP.

[3]  Ivan Lanese,et al.  Dynamic Choreographies - Safe Runtime Updates of Distributed Applications , 2015, COORDINATION.

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

[5]  Nobuko Yoshida,et al.  Parameterised Multiparty Session Types , 2010, Log. Methods Comput. Sci..

[6]  Nobuko Yoshida,et al.  Compositional Choreographies , 2013, CONCUR.

[7]  Nobuko Yoshida,et al.  Structured Communication-Centred Programming for Web Services , 2007, ESOP.

[8]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

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

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

[11]  Ivan Lanese,et al.  Bridging the Gap between Interaction- and Process-Oriented Choreographies , 2008, 2008 Sixth IEEE International Conference on Software Engineering and Formal Methods.

[12]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[13]  Nobuko Yoshida,et al.  Multiparty session types as coherence proofs , 2016, Acta Informatica.

[14]  Fabrizio Montesi,et al.  Kickstarting Choreographic Programming , 2014, WS-FM.

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

[16]  Maurizio Gabbrielli,et al.  Applied Choreographies , 2015, FORTE.

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

[18]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[19]  Luís Cruz-Filipe,et al.  Choreographies, Divided and Conquered , 2016, ArXiv.

[20]  Fabrizio Montesi,et al.  Choreographies, logically , 2017, Distributed Computing.

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

[22]  George Karypis,et al.  Introduction to Parallel Computing Solution Manual , 2003 .

[23]  Nobuko Yoshida,et al.  Dynamic multirole session types , 2011, POPL '11.

[24]  Kenneth E. Iverson,et al.  A programming language , 1899, AIEE-IRE '62 (Spring).

[25]  Luís Cruz-Filipe,et al.  Choreographies, Computationally , 2015, ArXiv.

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

[27]  Nobuko Yoshida,et al.  Pabble: parameterised Scribble , 2015, Service Oriented Computing and Applications.