Communication is an abstraction
Abstract
We introduce a formalism that allows to hierarchically define communication structures. The core language consists of a few imperative constructs operating on shared variables. The semantics describes two distincts behaviours: a program performs some actions, which are elementary instructions, and operates on data by means of its terminated sequences of actions. By abstracting from this operation, we get the notion of atom. At the abstract level an atom operates as an indivisible action, while it is implemented as a whole program of a lower level. We show that the concept of atom is well-suited to deal with both low-level and high-level communication and synchronization primitives.