The eXchange Calculus (XC): A functional programming language design for distributed collective systems
Distributed collective systems are systems formed by homogeneous dynamic collections of devices acting in a shared environment to pursue a joint task or goal. Typical applications emerge in the context of wireless sensor networks, robot swarms, groups of wearable-augmented people, and computing infr...
Uloženo v:
| Vydáno v: | The Journal of systems and software Ročník 210; s. 111976 |
|---|---|
| Hlavní autoři: | , , , , |
| Médium: | Journal Article |
| Jazyk: | angličtina |
| Vydáno: |
Elsevier Inc
01.04.2024
|
| Témata: | |
| ISSN: | 0164-1212 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| Shrnutí: | Distributed collective systems are systems formed by homogeneous dynamic collections of devices acting in a shared environment to pursue a joint task or goal. Typical applications emerge in the context of wireless sensor networks, robot swarms, groups of wearable-augmented people, and computing infrastructures. Programming such systems is notoriously hard, due to requirements of scalability, concurrency, faults, and difficulty in making desired collective behaviour ultimately emerge: ad-hoc languages and mechanisms have been proposed threads like spatial computing, macro-programming, and field-based coordination.
In this paper we present the eXchange Calculus (XC), formalising a tiny set of key mechanisms, usable across many different languages and platforms, allowing to express the overall interactive behaviour of distributed collective systems in a declarative way. In this approach, computation (executed in asynchronous rounds), communication (which is neighbour-based), and state over time, are all expressed by a single declarative construct, called exchange. We provide a formalisation of XC in terms of syntax, device-level and network-level semantics, prove a number of properties of the calculus, and discuss applicability considering a smart city scenario. XC is implemented as a DSL in Scala and in C++, with different trade-offs in terms of productivity and platform targetting.
•The eXchange Calculus (XC) is a core functional language for distributed systems.•XC supports macro-level compositional programming of self-organising behaviours.•XC comes with formal proofs on typing, expressiveness, and self-stabilisation.•XC is implemented in Scala and C++ DSLs and evaluated on a smart city scenario.•XC subsumes state-of-the-art field calculi via a single communication primitive. |
|---|---|
| ISSN: | 0164-1212 |
| DOI: | 10.1016/j.jss.2024.111976 |