Communicating Actor Automata – Modelling Erlang Processes as Communicating Machines

04/13/2023
by   Dominic Orchard, et al.
0

Brand and Zafiropulo's notion of Communicating Finite-State Machines (CFSMs) provides a succinct and powerful model of message-passing concurrency, based around channels. However, a major variant of message-passing concurrency is not readily captured by CFSMs: the actor model. In this work, we define a variant of CFSMs, called Communicating Actor Automata, to capture the actor model of concurrency as provided by Erlang: with mailboxes, from which messages are received according to repeated application of pattern matching. Furthermore, this variant of CFSMs supports dynamic process topologies, capturing common programming idioms in the context of actor-based message-passing concurrency. This gives a new basis for modelling, specifying, and verifying Erlang programs. We also consider a class of CAAs that give rise to freedom from race conditions.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/23/2018

Gossiping in Message-Passing Systems

We study the gossip problem in a message-passing environment: When a pro...
research
04/03/2020

Bounded verification of message-passing concurrency in Go using Promela and Spin

This paper describes a static verification framework for the message-pas...
research
10/06/2022

Computing Race Variants in Message-Passing Concurrent Programming with Selective Receives

Message-passing concurrency is a popular computation model that underlie...
research
09/30/2018

A Configurable Transport Layer for CAF

The message-driven nature of actors lays a foundation for developing sca...
research
07/21/2020

Scalable Termination Detection for Distributed Actor Systems

Automatic garbage collection (GC) prevents certain kinds of bugs and red...
research
04/11/2021

A Scalable Algorithm for Decentralized Actor Termination Detection

Automatic garbage collection (GC) prevents certain kinds of bugs and red...
research
07/26/2018

Bestow and Atomic: Concurrent Programming using Isolation, Delegation and Grouping

Any non-trivial concurrent system warrants synchronisation, regardless o...

Please sign up or login with your details

Forgot password? Click here to reset