It is not often that we can welcome the advent of a new theory of programming. Twelve years ago, E.W. Dijkstra published his Discipline of Programming, which is still a definitive source-book on the development of sequential algorithms. And now Chandy and Misra have shown how Dijkstra's methods, and other more recent developments, can be generalized to distributed and concurrent algorithms. Their work deserves the warmest welcome.
This book treats all essential aspects of the theory of programming. The underlying logic is developed with elegance and rigour. It is illustrated by clear exposition of many simple examples. It is then applied, with matching elegance and simplicity, to a range of examples which have hitherto justified a reputation of baffling complexity. The authors' technique and style are worthy of imitation by all who publish descriptions of distributed algorithms.
The book will be studied with enjoyment and profit by many classes of computing scientists. Teachers will welcome it as a text for an advanced class on programming. Software engineers will use it as a handbook of methods and algorithms for the design of distributed systems. And theoreticians will find a rich source of research ideas that promise to be of relevance in the professional activity of programming.