We review some results regarding specification, programming and verification of different classes of distributed systems which stemmed from the research of the Concurrency and Mobility Group at University of Firenze.
More specifically, we examine the distinguishing features of network-aware programming, service-oriented computing, autonomic computing, and collective adaptive systems programming. We then present an overview of four different languages, namely Klaim, Cows, Scel and AbC. For each language, we discuss design choices, present syntax and semantics, show how the different formalisms can be used to model and program a travel booking scenario, and describe programming environments and verification techniques.
~
DE NICOLA, Rocco, FERRARI, Gianluigi, PUGLIESE, Rosario and TIEZZI, Francesco, 2020. A formal approach to the engineering of domain-specific distributed systems. Journal of Logical and Algebraic Methods in Programming. 2020. Vol. 111, p. 100511. sciencedirect doi [Accessed 17 January 2024].
DE NICOLA, Rocco, FERRARI, Gianluigi, PUGLIESE, Rosario and TIEZZI, Francesco, 2018. A Formal Approach to the Engineering of Domain-Specific Distributed Systems. In: DI MARZO SERUGENDO, Giovanna and LORETI, Michele (eds.), Coordination Models and Languages. Cham: Springer International Publishing. p. 110–141. Lecture Notes in Computer Science. ISBN 978-3-319-92407-6. hal [Accessed 17 January 2024].
[…]
Klaim builds on Linda’s notion of Generative Communication through a single shared tuple space and generalises it to multiple distributed tuple spaces.
[…]
Especially at the beginning of this century, with the manifest pervasivity of the Internet, many researchers have considered both models and implementations of network-aware formalisms that have or have been influenced by the work on Klaim and other Linda-based models and primitives.
~
> There’s a lot to be said for full-duplex programming. One set of examples I like are from Erlang and its offspring. Using something like **LINDA** as a messaging “broker” makes sense, etc.
[…]
> One starting place could be with something like **LINDA++** where we are matching descriptions using a more universal vocabulary. But I think we are beyond that point already.
~
Michael Genesereth, Computer Science Department, Stanford University, Overview of General Game Playing page
> […] Game Description