Choreographies in Practice

  • Luís Cruz-FilipeEmail author
  • Fabrizio Montesi
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9688)


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.


Gaussian Elimination Recursive Call Connection Graph Process Calculus Process List 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Bravetti, M., Zavattaro, G.: Towards a unifying theory for choreography conformance and contract compliance. In: Lumpe, M., Vanderperren, W. (eds.) SC 2007. LNCS, vol. 4829, pp. 34–50. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  2. 2.
    Carbone, M., Honda, K., Yoshida, N.: Structured communication-centered programming for web services. ACM Trans. Program. Lang. Syst. 34(2), 8 (2012)CrossRefzbMATHGoogle Scholar
  3. 3.
    Carbone, M., Montesi, F.: Deadlock-freedom-by-design: multiparty asynchronous global programming. In: Giacobazzi, R., Cousot, R. (eds.) POPL, pp. 263–274. ACM, Italy (2013)Google Scholar
  4. 4.
    Carbone, M., Montesi, F., Schürmann, C.: Choreographies, logically. In: Baldan, P., Gorla, D. (eds.) CONCUR 2014. LNCS, vol. 8704, pp. 47–62. Springer, Heidelberg (2014)Google Scholar
  5. 5.
    Carbone, M., Montesi, F., Schürmann, C., Yoshida, N.: Multiparty session types as coherence proofs. In: Aceto, L., de Frutos-Escrig, D. (eds.) CONCUR, vol. 42 of LIPIcs, pp. 412–426. Schloss Dagstuhl, Germany (2015)Google Scholar
  6. 6.
    Chor. Programming Language.
  7. 7.
    Cruz-Filipe, L., Montesi, F.: Choreographies, computationally, CoRR, abs/1510.03271. (2015, submitted)Google Scholar
  8. 8.
    Cruz-Filipe, L., Montesi, F.: Choreographies, divided and conquered, CoRR, abs/1602.03729. (2016, submitted)Google Scholar
  9. 9.
    Dalla Preda, M., Gabbrielli, M., Giallorenzo, S., Lanese, I., Mauro, J.: Dynamic choreographies. In: Holvoet, T., Viroli, M. (eds.) Coordination Models and Languages. LNCS, vol. 9037, pp. 67–82. Springer, Heidelberg (2015)Google Scholar
  10. 10.
    Deniélou, P.-M., Yoshida, N.: Dynamic multirole session types. In: Ball, T., Sagiv, M. (eds.) POPL, pp. 435–446. ACM, USA (2011)Google Scholar
  11. 11.
    Deniélou, P.-M., Yoshida, N.: Multiparty session types meet communicating automata. In: Seidl, H. (ed.) Programming Languages and Systems. LNCS, vol. 7211, pp. 194–213. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  12. 12.
    Gabbrielli, M., Giallorenzo, S., Montesi, F.: Applied choreographies. CoRR, abs/1510.03637 (2015)Google Scholar
  13. 13.
    Grama, A., Gupta, A., Karypis, G., Kumar, V.: Introduction to Parallel Computing, 2nd edn. Pearson, Noida (2003)zbMATHGoogle Scholar
  14. 14.
    Honda, K., Yoshida, N., Carbone, M.: Multiparty asynchronous session types. In: Necula, G.C., Wadler, P. (eds.) POPL, pp. 273–284. ACM, New York (2008)CrossRefGoogle Scholar
  15. 15.
    Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, I, II. Inf. Comput. 100(1), 41–77 (1992)MathSciNetCrossRefzbMATHGoogle Scholar
  16. 16.
    Montesi, F.: Choreographic Programming, Ph.D. thesis, IT University of Copenhagen (2013).
  17. 17.
    Montesi, F.: Kickstarting choreographic programming, CoRR, abs/1502.02519 (2015)Google Scholar
  18. 18.
    Montesi, F., Yoshida, N.: Compositional choreographies. In: D’Argenio, P.R., Melgratti, H. (eds.) CONCUR 2013 – Concurrency Theory. LNCS, vol. 8052, pp. 425–439. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  19. 19.
    Ng, N., Yoshida, N.: Pabble: parameterised scribble. SOCA 9(3–4), 269–284 (2015)CrossRefGoogle Scholar
  20. 20.
    Yoshida, N., Deniélou, P.-M., Bejleri, A., Hu, R.: Parameterised multiparty session types. In: Ong, L. (ed.) FOSSACS 2010. LNCS, vol. 6014, pp. 128–145. Springer, Heidelberg (2010)CrossRefGoogle Scholar

Copyright information

© IFIP International Federation for Information Processing 2016

Authors and Affiliations

  1. 1.Department of Mathematics and Computer ScienceUniversity of Southern DenmarkOdenseDenmark

Personalised recommendations