Runtime verification for decentralised and distributed systems
This chapter surveys runtime verification research related to distributed systems. We report
solutions that study how to monitor system with some distributed characteristic, solutions that …
solutions that study how to monitor system with some distributed characteristic, solutions that …
Gobra: Modular specification and verification of go programs
Go is an increasingly-popular systems programming language targeting, especially,
concurrent and distributed systems. Go differentiates itself from other imperative languages …
concurrent and distributed systems. Go differentiates itself from other imperative languages …
Less is more: multiparty session types revisited
Multiparty Session Types (MPST) are a ty** discipline ensuring that a message-passing
process implements a multiparty session protocol, without errors. In this paper, we propose a …
process implements a multiparty session protocol, without errors. In this paper, we propose a …
Haschor: Functional choreographic programming for all (functional pearl)
Choreographic programming is an emerging paradigm for programming distributed systems.
In choreographic programming, the programmer describes the behavior of the entire system …
In choreographic programming, the programmer describes the behavior of the entire system …
Distributed programming using role-parametric session types in go: statically-typed endpoint apis for dynamically-instantiated communication structures
This paper presents a framework for the static specification and safe programming of
message passing protocols where the number and kinds of participants are dynamically …
message passing protocols where the number and kinds of participants are dynamically …
A static verification framework for message passing in go using behavioural types
The Go programming language has been heavily adopted in industry as a language that
efficiently combines systems programming with concurrency. Go's concurrency primitives …
efficiently combines systems programming with concurrency. Go's concurrency primitives …
Formalising a turing-complete choreographic language in coq
Theory of choreographic languages typically includes a number of complex results that are
proved by structural induction. The high number of cases and the subtle details in some of …
proved by structural induction. The high number of cases and the subtle details in some of …
Choreography automata
Abstract Automata models are well-established in many areas of computer science and are
supported by a wealth of theoretical results including a wide range of algorithms and …
supported by a wealth of theoretical results including a wide range of algorithms and …
Zooid: a DSL for certified multiparty computation: from mechanised metatheory to certified multiparty processes
We design and implement Zooid, a domain specific language for certified multiparty
communication, embedded in Coq and implemented atop our mechanisation framework of …
communication, embedded in Coq and implemented atop our mechanisation framework of …
Fencing off go: liveness and safety for channel-based programming
Go is a production-level statically typed programming language whose design features
explicit message-passing primitives and lightweight threads, enabling (and encouraging) …
explicit message-passing primitives and lightweight threads, enabling (and encouraging) …