Functional Programming for Distributed Systems with XC (Artifact)

Authors Giorgio Audrito , Roberto Casadei , Ferruccio Damiani , Guido Salvaneschi , Mirko Viroli

Thumbnail PDF

Artifact Description

  • Filesize: 0.64 MB
  • 4 pages

Document Identifiers

Author Details

Giorgio Audrito
  • University of Turin, Italy
Roberto Casadei
  • University of Bologna, Cesena, Italy
Ferruccio Damiani
  • University of Turin, Italy
Guido Salvaneschi
  • Universität St. Gallen, Switzerland
Mirko Viroli
  • University of Bologna, Cesena, Italy

Cite AsGet BibTex

Giorgio Audrito, Roberto Casadei, Ferruccio Damiani, Guido Salvaneschi, and Mirko Viroli. Functional Programming for Distributed Systems with XC (Artifact). In Special Issue of the 36th European Conference on Object-Oriented Programming (ECOOP 2022). Dagstuhl Artifacts Series (DARTS), Volume 8, Issue 2, pp. 8:1-8:4, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2022)


Artifact Evaluation Policy

The artifact has been evaluated as described in the ECOOP 2022 Call for Artifacts and the ACM Artifact Review and Badging Policy


In the paper "Functional programming for distributed systems with XC" we present XC, a programming language to develop the collective behaviour of homogeneous distributed systems while abstracting over concurrency, asynchronous execution, message loss, and device failures. The paper describes the design of XC, formalizes a core calculus for it, and shows that XC can effectively capture the logic of several distributed protocols and applications including gossiping, distributed summarization, information flows over self-healing communication structures, and self-organizing behaviours. Then, it discusses implementation, in a Scala and a C++ embedded domain-specific language (DSL), and provides evaluation through a case study in a smart city scenario, called SmartC. The reusable artifact described in this paper contains precisely those software projects: the Scala DSL, referred to as XC/Scala; the C++ DSL, referred to as XC/C++; and the SmartC implementation in both DSLs.

Subject Classification

ACM Subject Classification
  • Software and its engineering → Distributed programming languages
  • Software and its engineering → Abstraction, modeling and modularity
  • Theory of computation → Functional constructs
  • Computing methodologies → Distributed programming languages
  • Distributed programming
  • Field Calculi
  • Scala DSL
  • C++ DSL


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads


  1. Giorgio Audrito. FCPP: an efficient and extensible field calculus framework. In Proceedings of the 1st International Conference on Autonomic Computing and Self-Organizing Systems, ACSOS, pages 153-159. IEEE Computer Society, 2020. URL:
  2. Giorgio Audrito, Roberto Casadei, Ferruccio Damiani, Guido Salvaneschi, and Mirko Viroli. Functional Programming for Distributed Systems with XC. In Karim Ali and Jan Vitek, editors, 36th European Conference on Object-Oriented Programming, ECOOP 2022, June 6-10, 2022, Berlin, Germany, volume 222 of LIPIcs, pages 20:1-20:28. Schloss Dagstuhl - Leibniz-Zentrum für Informatik, 2022. To appear. URL:
  3. Giorgio Audrito, Luigi Rapetta, and Gianluca Torta. Extensible 3d simulation of aggregated systems with fcpp. In 24th International Conference on Coordination Models and Languages, Proceedings, Lecture Notes in Computer Science. Springer, 2022. To appear. Google Scholar
  4. Roberto Casadei. scafi/artifact-2021-ecoop-smartc: v1.2, 2022. URL:
  5. Roberto Casadei. scafi/artifact-2021-ecoop-xc: v1.2, 2022. URL:
  6. Roberto Casadei, Mirko Viroli, Giorgio Audrito, and Ferruccio Damiani. FScaFi : A core calculus for collective adaptive systems programming. In ISoLA (2), volume 12477 of Lecture Notes in Computer Science, pages 344-360. Springer, 2020. URL:
  7. Roberto Casadei, Mirko Viroli, Giorgio Audrito, Danilo Pianini, and Ferruccio Damiani. Engineering collective intelligence at the edge with aggregate processes. Eng. Appl. Artif. Intell., 97:104081, 2021. URL:
  8. Danilo Pianini, Sara Montagna, and Mirko Viroli. Chemical-oriented simulation of computational systems with ALCHEMIST. J. Simulation, 7(3):202-215, 2013. URL:
  9. Danilo Pianini, Mirko Viroli, and Jacob Beal. Protelis: practical aggregate programming. In Roger L. Wainwright, Juan Manuel Corchado, Alessio Bechini, and Jiman Hong, editors, Proceedings of the 30th Annual ACM Symposium on Applied Computing, Salamanca, Spain, April 13-17, 2015, pages 1846-1853. ACM, 2015. URL:
  10. Mirko Viroli, Jacob Beal, Ferruccio Damiani, Giorgio Audrito, Roberto Casadei, and Danilo Pianini. From distributed coordination to field calculus and aggregate computing. J. Log. Algebraic Methods Program., 109, 2019. URL:
  11. Mirko Viroli, Roberto Casadei, and Danilo Pianini. Simulating large-scale aggregate MASs with Alchemist and Scala. In Federated Conference on Computer Science and Information Systems (FedCSIS), volume 8 of Annals of Computer Science and Information Systems, pages 1495-1504. IEEE, 2016. URL:
Questions / Remarks / Feedback

Feedback for Dagstuhl Publishing

Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail