This book offers a mathematical theory of communicating systems. The theory is not confined to the basic concepts of communication and concurrency, but applies to the general study of machines, architectures, programming methods, and languages. The underlying mathematics--some algebra and logic--can be found before the final year of computer science curricula. Milner’s aim is to give the reader practice in representing real systems in terms of mathematical models and skill in manipulating these models to understand the behavior of the systems. Each new concept is discussed informally before it is defined rigorously. The book is suitable for both practically inclined readers (who can concentrate on modeling real systems) and mathematically oriented readers (who can appreciate the mathematical details). As Professor Hoare points out in his foreword, the book is an example of the fruitful interplay of theory and practice in computer science.