A Core Model for Choreographic Programming

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


Choreographic Programming is a paradigm for developing concurrent programs that are deadlock-free by construction, by programming communications declaratively and then synthesising process implementations automatically. Despite strong interest on choreographies, a foundational model that explains which computations can be performed with the hallmark constructs of choreographies is still missing.

In this work, we introduce Core Choreographies (CC), a model that includes only the core primitives of choreographic programming. Every computable function can be implemented as a choreography in CC, from which we can synthesise a process implementation where independent computations run in parallel. We discuss the design of CC and argue that it constitutes a canonical model for choreographic programming.



We thank Hugo Torres Vieira and Gianluigi Zavattaro for their useful comments. Montesi was supported by CRC (Choreographies for Reliable and efficient Communication software), grant no. DFF–4005-00304 from the Danish Council for Independent Research.


  1. 1.
    Barendregt, H.: The Lambda Calculus: Its Syntax and Semantics, 2nd edn. North Holland, Amsterdam (1984)zbMATHGoogle Scholar
  2. 2.
    Bettini, L., Coppo, M., D’Antoni, L., De Luca, M., Dezani-Ciancaglini, M., Yoshida, N.: Global progress in dynamically interleaved multiparty sessions. In: Breugel, F., Chechik, M. (eds.) CONCUR 2008. LNCS, vol. 5201, pp. 418–433. Springer, Heidelberg (2008). doi: 10.1007/978-3-540-85361-9_33 CrossRefGoogle Scholar
  3. 3.
    Brand, D., Zafiropulo, P.: On communicating finite-state machines. J. ACM 30(2), 323–342 (1983)MathSciNetCrossRefzbMATHGoogle Scholar
  4. 4.
    Caires, L., Vieira, H.T.: Conversation types. Theor. Comput. Sci. 411(51–52), 4399–4440 (2010)MathSciNetCrossRefzbMATHGoogle Scholar
  5. 5.
    Carbone, M., Honda, K., Yoshida, N.: Structured communication-centered programming for web services. ACM Trans. Program. Lang. Syst. 34(2), 8 (2012)CrossRefzbMATHGoogle Scholar
  6. 6.
    Carbone, M., Montesi, F.: Deadlock-freedom-by-design: multiparty asynchronous global programming. In: Giacobazzi, R., Cousot, R., (eds.) POPL, pp. 263–274. ACM (2013)Google Scholar
  7. 7.
    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). doi: 10.1007/978-3-662-44584-6_5 Google Scholar
  8. 8.
    Chor. Programming Language.
  9. 9.
    Cruz-Filipe, L., Montesi, F.: Choreographies, computationally. CoRR, abs/1510.03271 (2015)Google Scholar
  10. 10.
    Cruz-Filipe, L., Montesi, F.: Choreographies, divided and conquered. CoRR, abs/1602.03729 (2016, Submitted)Google Scholar
  11. 11.
    Cutland, N.J.: Computability: An Introduction to Recursive Function Theory. Cambridge University Press, Cambridge (1980)zbMATHGoogle Scholar
  12. 12.
    Dalla Preda, M., Gabbrielli, M., Giallorenzo, S., Lanese, I., Mauro, J.: Dynamic choreographies – safe runtime updates of distributed applications. In: Holvoet, T., Viroli, M. (eds.) COORDINATION 2015. LNCS, vol. 9037, pp. 67–82. Springer, Cham (2015). doi: 10.1007/978-3-319-19282-6_5 Google Scholar
  13. 13.
    Deniélou, P.-M., Yoshida, N.: Multiparty compatibility in communicating automata: characterisation and synthesis of global session types. In: Fomin, F.V., Freivalds, R., Kwiatkowska, M., Peleg, D. (eds.) ICALP 2013. LNCS, vol. 7966, pp. 174–186. Springer, Heidelberg (2013). doi: 10.1007/978-3-642-39212-2_18 CrossRefGoogle Scholar
  14. 14.
    Gabbrielli, M., Giallorenzo, S., Montesi, F.: Applied choreographies. CoRR, abs/1510.03637 (2015)Google Scholar
  15. 15.
    Honda, K., Vasconcelos, V.T., Kubo, M.: Language primitives and type discipline for structured communication-based programming. In: Hankin, C. (ed.) ESOP 1998. LNCS, vol. 1381, pp. 122–138. Springer, Heidelberg (1998). doi: 10.1007/BFb0053567 CrossRefGoogle Scholar
  16. 16.
    Honda, K., Yoshida, N., Carbone, M.: Multiparty asynchronous session types. In: Necula, G.C., Wadler, P., (eds.) POPL, pp. 273–284. ACM (2008)Google Scholar
  17. 17.
    Kleene, S.C.: Introduction to Metamathematics. North-Holland Publishing Co., Amsterdam (1952)zbMATHGoogle Scholar
  18. 18.
    Lanese, I., Guidi, C., Montesi, F., Zavattaro, G.: Bridging the gap between interaction- and process-oriented choreographies. In: Cerone, A., Gruner, S., (eds.) SEFM, pp. 323–332. IEEE (2008)Google Scholar
  19. 19.
    Lanese, I., Montesi, F., Zavattaro, G.: Amending choreographies. In: Ravara, A., Silva, J., (eds.) WWV 2013. EPTCS, vol. 123, pp. 34–48 (2013)Google Scholar
  20. 20.
    Leesatapornwongsa, T., Lukman, J.F., Shan, L., Gunawi, H.S.: TaxDC: a taxonomy of non-deterministic concurrency bugs in datacenter distributed systems. In: ASPLOS, pp. 517–530. ACM (2016)Google Scholar
  21. 21.
    Shan, L., Park, S., Seo, E., Zhou, Y.: Learning from mistakes: a comprehensive study on real world concurrency bug characteristics. In: ASPLOS, pp. 329–339. ACM (2008)Google Scholar
  22. 22.
    Montesi, F.: Choreographic Programming. Ph. D. thesis, IT University of Copenhagen (2013).
  23. 23.
    Montesi, F., Guidi, C., Zavattaro, G.: Service-oriented programming with Jolie. In: Bouguettaya, A., Sheng, Q.Z., Daniel, F. (eds.) Web Services Foundations, pp. 81–107. Springer, Heidelberg (2014)CrossRefGoogle Scholar
  24. 24.
    Montesi, F., Yoshida, N.: Compositional choreographies. In: D’Argenio, P.R., Melgratti, H.C. (eds.) CONCUR 2013. LNCS, vol. 8052, pp. 425–439. Springer, Heidelberg (2013). doi: 10.1007/978-3-642-40184-8_30 CrossRefGoogle Scholar
  25. 25.
    Qiu, Z., Zhao, X., Cai, C., Yang, H.: Towards the theoretical foundation of choreography. In: Williamson, C.L., Zurko, M.E., Patel-Schneider, P.F., Shenoy, P.J., (eds.) WWW, pp. 973–982. ACM (2007)Google Scholar
  26. 26.
    Sangiorgi, D., Walker, D.: The \(\pi \)-Calculus: A Theory of Mobile Processes. Cambridge University Press, Cambridge (2001)zbMATHGoogle Scholar
  27. 27.
    Turing, A.M.: Computability and \(\lambda \)-definability. J. Symb. Log. 2(4), 153–163 (1937)CrossRefzbMATHGoogle Scholar
  28. 28.
    W3C WS-CDL Working Group: Web services choreography description language version 1.0 (2004).

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  1. 1.University of Southern DenmarkOdenseDenmark

Personalised recommendations