Procedural Choreographic Programming

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


Choreographic Programming is an emerging paradigm for correct-by-construction concurrent programming. However, its applicability is limited by the current lack of support for reusable procedures. We propose Procedural Choreographies (PC), a choreographic language model with full procedural abstraction. PC includes unbounded process creation and name mobility, yielding a powerful framework for writing correct concurrent algorithms that can be compiled into a process calculus. This increased expressivity requires a typing discipline to ensure that processes are properly connected when enacting procedures.



We thank the anonymous reviewers for their useful comments. This work was supported by the CRC project, grant no. DFF–4005-00304 from the Danish Council for Independent Research, by grant no. DFF–1323-00247 from the Danish Council for Independent Research, Natural Sciences, and by the Open Data Framework project at the University of Southern Denmark.


  1. 1.
    Business Process Model and Notation.
  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., Lindley, S., Montesi, F., Schürmann, C., Wadler, P.: Coherence generalises duality: a logical explanation of multiparty session types. In: CONCUR. LIPIcs, vol. 59, pp. 33:1–33:15. Schloss Dagstuhl (2016)Google Scholar
  4. 4.
    Carbone, M., Montesi, F.: Deadlock-freedom-by-design: multiparty asynchronous global programming. In: POPL, pp. 263–274. ACM (2013)Google Scholar
  5. 5.
    Carbone, M., Montesi, F., Schürmann, C., Yoshida, N.: Multiparty session types as coherence proofs. Acta Inform. 54(3), 243–269 (2017)MathSciNetCrossRefGoogle Scholar
  6. 6.
    Chor: Programming Language.
  7. 7.
    Coppo, M., Dezani-Ciancaglini, M., Yoshida, N., Padovani, L.: Global progress for dynamically interleaved multiparty sessions. Math. Struct. Comput. Sci. 26(2), 238–302 (2016)MathSciNetCrossRefzbMATHGoogle Scholar
  8. 8.
    Cruz-Filipe, L., Montesi, F.: Choreographies in practice. In: Albert, E., Lanese, I. (eds.) FORTE 2016. LNCS, vol. 9688, pp. 114–123. Springer, Cham (2016). doi: 10.1007/978-3-319-39570-8_8 CrossRefGoogle Scholar
  9. 9.
    Cruz-Filipe, L., Montesi, F.: A language for the declarative composition of concurrent protocols. CoRR, abs/1602.03729 (2016)Google Scholar
  10. 10.
    Cruz-Filipe, L., Montesi, F.: A core model for choreographic programming. In: Kouchnarenko, O., Khosravi, R. (eds.) FACS 2016. LNCS, vol. 10231, pp. 17–35. Springer, Cham (2017). doi: 10.1007/978-3-319-57666-4_3 CrossRefGoogle Scholar
  11. 11.
    Dalla Preda, M., Gabbrielli, M., Giallorenzo, S., Lanese, I., Mauro, J.: Dynamic choreographies. 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
  12. 12.
    Demangeon, R., Honda, K.: Nested protocols in session types. In: Koutny, M., Ulidowski, I. (eds.) CONCUR 2012. LNCS, vol. 7454, pp. 272–286. Springer, Heidelberg (2012). doi: 10.1007/978-3-642-32940-1_20 CrossRefGoogle Scholar
  13. 13.
    Deniélou, P.-M., Yoshida, N.: Dynamic multirole session types. In: POPL, pp. 435–446. ACM (2011)Google Scholar
  14. 14.
    Honda, K., Mukhamedov, A., Brown, G., Chen, T.-C., Yoshida, N.: Scribbling interactions with a formal foundation. In: Natarajan, R., Ojo, A. (eds.) ICDCIT 2011. LNCS, vol. 6536, pp. 55–75. Springer, Heidelberg (2011). doi: 10.1007/978-3-642-19056-8_4 CrossRefGoogle 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. J. ACM 63(1), 9 (2016)MathSciNetCrossRefzbMATHGoogle Scholar
  17. 17.
    Lanese, I., Guidi, C., Montesi, F., Zavattaro, G.: Bridging the gap between interaction-and process-oriented choreographies. In: SEFM, pp. 323–332 (2008)Google Scholar
  18. 18.
    Lanese, I., Montesi, F., Zavattaro, G.: Amending choreographies. In: WWV, pp. 34–48 (2013)Google Scholar
  19. 19.
    Lu, S., Park, S., Seo, E., Zhou, Y.: Learning from mistakes: a comprehensive study on real world concurrency bug characteristics. ACM SIGARCH Comput. Archit. News 36(1), 329–339 (2008)CrossRefGoogle Scholar
  20. 20.
    Montesi, F.: Choreographic programming. Ph.D. thesis, IT University of Copenhagen (2013).
  21. 21.
    Montesi, F., Yoshida, N.: Compositional choreographies. In: D’Argenio, P.R., Melgratti, H. (eds.) CONCUR 2013. LNCS, vol. 8052, pp. 425–439. Springer, Heidelberg (2013). doi: 10.1007/978-3-642-40184-8_30 CrossRefGoogle Scholar
  22. 22.
    MPI Forum: MPI: A Message-Passing Interface Standard. High-Performance Computing Center Stuttgart, version 3.1 (2015)Google Scholar
  23. 23.
    PI4SOA (2008).
  24. 24.
    Qiu, Z., Zhao, X., Cai, C., Yang, H.: Towards the theoretical foundation of choreography. In: WWW, pp. 973–982. ACM (2007)Google Scholar
  25. 25.
    Savara: JBoss Community.
  26. 26.
    W3C WS-CDL Working Group: Web services choreography description language version 1.0 (2004).
  27. 27.
    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). doi: 10.1007/978-3-642-12032-9_10 CrossRefGoogle Scholar

Copyright information

© IFIP International Federation for Information Processing 2017

Authors and Affiliations

  1. 1.University of Southern DenmarkOdenseDenmark

Personalised recommendations