A Core Model for Choreographic Programming

Research output: Chapter in Book/Report/Conference proceedingArticle in proceedingsResearchpeer-review

158 Downloads (Pure)

Abstract

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.
Original languageEnglish
Title of host publicationFormal Aspects of Component Software : 13th International Conference, FACS 2016, Besançon, France, October 19-21, 2016, Revised Selected Papers
EditorsOlga Kouchnarenko, Khosravi Ramtin
PublisherSpringer
Publication date2017
Pages17-35
ISBN (Print)978-3-319-57665-7
ISBN (Electronic)978-3-319-57666-4
DOIs
Publication statusPublished - 2017
Event13th International Formal Aspects of Component Software Conference - Besançon, France
Duration: 19. Oct 201621. Oct 2016
Conference number: 13

Conference

Conference13th International Formal Aspects of Component Software Conference
Number13
CountryFrance
CityBesançon
Period19/10/201621/10/2016
SeriesLecture Notes in Computer Science
Volume10231
ISSN0302-9743

    Fingerprint

Cite this

Cruz-Filipe, L., & Montesi, F. (2017). A Core Model for Choreographic Programming. In O. Kouchnarenko, & K. Ramtin (Eds.), Formal Aspects of Component Software: 13th International Conference, FACS 2016, Besançon, France, October 19-21, 2016, Revised Selected Papers (pp. 17-35). Springer. Lecture Notes in Computer Science, Vol.. 10231 https://doi.org/10.1007/978-3-319-57666-4_3