ABSTRACT

This chapter introduces a set of notations to represent distributed algorithms. These notations do not always conform to the syntax of popular programming languages like C or Java. They are only useful to appropriately specify certain key issues of atomicity and scheduling in a succinct way. The notations have enough flexibility to accommodate occasional use of even word specifications for representing actions. These specifications are only meant for a human user who is trying to implement the system, or reason about its correctness. Dijkstra [D76], argued about the importance of such a language to influence our thinking habits. This is the motivation behind introducing these simple notations to represent distributed algorithms.