Communicating
Sequential Processes
C. A. R. Hoare
June 21, 2004
© C. A. R. Hoare, 1985–2004
This document is an electronic version of Communicating Sequential
Processes, first published in 1985 by Prentice Hall International. It may be
copied, printed, and distributed free of charge. However, such copying,
printing, or distribution may not:
− be carried out for commercial gain; or
− take place within India, Pakistan, Bangladesh, Sri Lanka, or the Maldives;
or
− involve any modification to the document itself.
Questions and comments are welcome, and should be sent to the editor of
this version: Jim.Davies@comlab.ox.ac.uk.
Foreword
For a variety of reasons, this is a book eagerly awaited by all who knew it
was in the making; to say that their patience has been rewarded would be an
understatement.
A simple reason was that it is Tony Hoare’s first book. Many know him
from the lectures he has untiringly given all over the world; many more know
him as the articulate and careful author of a number of articles (of great vari-
ety!) that became classics almost before the printer’s ink had dried. But a
book is a different medium: here the author can express himself without the
usually stringent limitations of time and space; it gives him the opportunity
of revealing himself more intimately and of covering a topic of wider span,
opportunities of which Tony Hoare has made the best use we could hope for.
A more solid reason was derived from the direct contents of the book.
When concurrency confronted the computing community about a quarter of
a century ago, it caused an endless confusion, partly by the technically very
different circumstances in which it emerged, partly by the accident of history
that it introduced non-determinism at the same time. The disentanglement of
that confusion required the hard work of a mature and devoted scientist who,
with luck, would clarify the situation. Tony Hoare has devoted a major part
of his scientific endeavours to that challenge, and we have every reason to be
grateful for that.
The most