Distributed Computing

, Volume 31, Issue 1, pp 51–67 | Cite as

Choreographies, logically

  • Marco Carbone
  • Fabrizio Montesi
  • Carsten Schürmann


In Choreographic Programming, a distributed system is programmed by giving a choreography, a global description of its interactions, instead of separately specifying the behaviour of each of its processes. Process implementations in terms of a distributed language can then be automatically projected from a choreography. We present Linear Compositional Choreographies (LCC), a proof theory for reasoning about programs that modularly combine choreographies with processes. Using LCC, we logically reconstruct a semantics and a projection procedure for programs. For the first time, we also obtain a procedure for extracting choreographies from process terms.


Choreographies Curry–Howard isomorphism Linear logic Programming languages 



We thank the anonymous reviewers for their helpful comments on this paper. Montesi was supported by the Danish Council for Independent Research (Technology and Production), Grant No. DFF–4005-00304, and by the Open Data Framework project at the University of Southern Denmark. This publication was made possible in part by the DemTech Grant 10-092309 from the Danish Council for Strategic Research, Program Commission on Strategic Growth Technologies and in part by NPRP Grant #7-1393-5-209 from the Qatar National Research Fund (a member of Qatar Foundation). The statements made herein are solely the responsibility of the authors.

Supplementary material

446_2017_295_MOESM1_ESM.graffle (16 kb)
Supplementary material 1 (graffle 16 KB)
446_2017_295_MOESM2_ESM.graffle (15 kb)
Supplementary material 2 (graffle 14 KB)
446_2017_295_MOESM3_ESM.graffle (17 kb)
Supplementary material 3 (graffle 17 KB)
446_2017_295_MOESM4_ESM.graffle (5 kb)
Supplementary material 4 (graffle 5 KB)
446_2017_295_MOESM5_ESM.graffle (17 kb)
Supplementary material 5 (graffle 16 KB)


  1. 1.
    Avron, A.: Hypersequents, logical consequence and intermediate logics for concurrency. Ann. Math. Artif. Intell. 4, 225–248 (1991)MathSciNetCrossRefzbMATHGoogle Scholar
  2. 2.
    Basu, S., Bultan, T.: Choreography conformance via synchronizability. In: WWW, pp. 795–804 (2011)Google Scholar
  3. 3.
    Basu, S., Bultan, T., Ouederni, M.: Deciding choreography realizability. In: POPL, pp. 191–202 (2012)Google Scholar
  4. 4.
    Bellin, G., Scott, P.J.: On the pi-calculus and linear logic. Theor. Comput. Sci. 135(1), 11–65 (1994)Google Scholar
  5. 5.
    Bettini, L., Coppo, M., D’Antoni, L., Luca, M.D., Dezani-Ciancaglini, M., Yoshida, N.: Global progress in dynamically interleaved multiparty sessions. In: CONCUR. LNCS, vol. 5201, pp. 418–433. Springer (2008)Google Scholar
  6. 6.
    Business Process Model and Notation.
  7. 7.
    Caires, L., Pfenning, F.: Session types as intuitionistic linear propositions. In: CONCUR, pp. 222–236 (2010)Google Scholar
  8. 8.
    Caires, L., Vieira, H.T.: Conversation types. In: ESOP’09. LNCS, vol. 5502, pp. 285–300. Springer, Heidelberg (2009)Google Scholar
  9. 9.
    Carbone, M., Honda, K., Yoshida, N.: Structured communication-centered programming for web services. ACM TOPLAS 34(2), 8 (2012)CrossRefzbMATHGoogle Scholar
  10. 10.
    Carbone, M., Montesi, F.: Deadlock-freedom-by-design: multiparty asynchronous global programming. In: POPL, pp. 263–274 (2013)Google Scholar
  11. 11.
    Cruz-Filipe, L., Larsen, K.S., Montesi, F.: The paths to choreography extraction. In: FoSSaCS, LNCS. Springer (2017) (accepted for publication) Google Scholar
  12. 12.
    Girard, J.Y.: Linear logic. Theor. Comput. Sci. 50, 1–102 (1987)MathSciNetCrossRefzbMATHGoogle Scholar
  13. 13.
    Honda, K., Vasconcelos, V., Kubo, M.: Language primitives and type disciplines for structured communication-based programming. In: ESOP’98. LNCS, vol. 1381, pp. 22–138. Springer, Heidelberg (1998)Google Scholar
  14. 14.
    Lanese, I., Guidi, C., Montesi, F., Zavattaro, G.: Bridging the gap between interaction- and process-oriented choreographies. In: Proceedings of SEFM, pp. 323–332. IEEE (2008)Google Scholar
  15. 15.
    Lange, J., Tuosto, E.: Synthesising choreographies from local session types. In: CONCUR, pp. 225–239 (2012)Google Scholar
  16. 16.
    Lange, J., Tuosto, E., Yoshida, N.: From communicating machines to graphical choreographies. In: Proceedings of POPL 2015, pp. 221–232 (2015).
  17. 17.
    Montesi, F.: Choreographic Programming. Ph.D. thesis, IT University of Copenhagen (2013).
  18. 18.
    Montesi, F., Yoshida, N.: Compositional choreographies. In: CONCUR, pp. 425–439 (2013)Google Scholar
  19. 19.
    Pérez, J.A., Caires, L., Pfenning, F., Toninho, B.: Linear logical relations for session-based concurrency. In: ESOP, pp. 539–558 (2012)Google Scholar
  20. 20.
    Pottinger, G.: Uniform cut-free formulations of T, S4 and S5 (abstract). J. Symb. Log. 48, 900 (1983)Google Scholar
  21. 21.
    Qiu, Z., Zhao, X., Cai, C., Yang, H.: Towards the theoretical foundation of choreography. In: WWW, pp. 973–982. IEEE (2007)Google Scholar
  22. 22.
    Sangiorgi, D.: pi-calculus, internal mobility, and agent-passing calculi. Theor. Comput. Sci. 167(1&2), 235–274 (1996)MathSciNetCrossRefzbMATHGoogle Scholar
  23. 23.
    Sangiorgi, D., Walker, D.: The \(\pi \)-Calculus: A Theory of Mobile Processes. Cambridge University Press, Cambridge (2001)zbMATHGoogle Scholar
  24. 24.
    Toninho, B., Caires, L., Pfenning, F.: Higher-order processes, functions, and sessions: a monadic integration. In: ESOP, pp. 350–369 (2013)Google Scholar
  25. 25.
    W3C WS-CDL Working Group: Web services choreography description language version 1.0. (2004)
  26. 26.
    Wadler, P.: Propositions as sessions. J. Funct. Program. 24(2–3), 384–418 (2014). doi: 10.1017/S095679681400001X MathSciNetCrossRefzbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2017

Authors and Affiliations

  1. 1.IT University of CopenhagenCopenhagenDenmark
  2. 2.University of Southern DenmarkOdenseDenmark

Personalised recommendations