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.
Giorgio Audrito, Roberto Casadei, Ferruccio Damiani, Guido Salvaneschi, Mirko Viroli (2022). Functional Programming for Distributed Systems with XC (Artifact), 8, 1-4 [10.4230/DARTS.8.2.8].
Functional Programming for Distributed Systems with XC (Artifact)
Roberto Casadei;Mirko Viroli
2022
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.File | Dimensione | Formato | |
---|---|---|---|
DARTS-8-2-8.pdf
accesso aperto
Tipo:
Versione (PDF) editoriale
Licenza:
Licenza per Accesso Aperto. Creative Commons Attribuzione (CCBY)
Dimensione
663.77 kB
Formato
Adobe PDF
|
663.77 kB | Adobe PDF | Visualizza/Apri |
I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.