License: Creative Commons Attribution 4.0 International license (CC BY 4.0)
When quoting this document, please refer to the following
DOI: 10.4230/DARTS.8.2.8
URN: urn:nbn:de:0030-drops-162068
URL: https://drops.dagstuhl.de/opus/volltexte/2022/16206/
Go back to Dagstuhl Artifacts Series


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

Functional Programming for Distributed Systems with XC (Artifact)

pdf-format:
DARTS-8-2-8.pdf (0.6 MB)
artifact-format:
DARTS-8-2-8-artifact-a86d8900a526e46a96e36680e4e6a95b.zip (5,559 MB)

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


Abstract

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.

BibTeX - Entry

@Article{audrito_et_al:DARTS.8.2.8,
  author =	{Audrito, Giorgio and Casadei, Roberto and Damiani, Ferruccio and Salvaneschi, Guido and Viroli, Mirko},
  title =	{{Functional Programming for Distributed Systems with XC (Artifact)}},
  pages =	{8:1--8:4},
  journal =	{Dagstuhl Artifacts Series},
  ISSN =	{2509-8195},
  year =	{2022},
  volume =	{8},
  number =	{2},
  editor =	{Audrito, Giorgio and Casadei, Roberto and Damiani, Ferruccio and Salvaneschi, Guido and Viroli, Mirko},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops.dagstuhl.de/opus/volltexte/2022/16206},
  URN =		{urn:nbn:de:0030-drops-162068},
  doi =		{10.4230/DARTS.8.2.8},
  annote =	{Keywords: Distributed programming, Field Calculi, Scala DSL, C++ DSL}
}

Keywords: Distributed programming, Field Calculi, Scala DSL, C++ DSL
Collection: DARTS, Volume 8, Issue 1, Special Issue of the 34th Euromicro Conference on Real-Time Systems (ECRTS 2022)
Issue Date: 2022
Date of publication: 23.06.2022


DROPS-Home | Fulltext Search | Imprint | Privacy Published by LZI