Jump to content

Communicating sequential processes

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 62.3.73.60 (talk) at 16:43, 11 July 2003. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Communicating Sequential Processes, or CSP, is a language for describing patterns of interaction. First described in a paper by C. A. R. Hoare in 1978, the basic ideas in that paper were refined into the book "Communicating Sequentual Processes" which was published in 1985. In May 2003, that book was the third most cited Computer Science reference of all time according to CiteSeer.

As its name suggests, CSP allows us to describe systems as a number of components (processes) which operate independently and communicate with each other solely over well-defined channels. To give the archetypal CSP example; an abstract representation of a chocolate machine might be able to carry out two different events, 'coin' and 'choc' which represent the insertion of payment and the delivery of a chocolate respectively. A machine which demanded payment before offering a chocolate could be written as:

coin -> choc -> STOP

Further Reading

C. A. R. Hoare, Communicating Sequential Processes , Prentice-Hall 1985, ISBN 0-13-153271-8. This book has been updated by Jim Davies at the Oxford University Computer Laboratory and the new edition is available for download as a pdf file at the Using CSP website.

A.W. Roscoe, The Theory and Practice of Concurrency, Prentice-Hall 1997, ISBN 0-13-674409-5. Some links relating to this book are available here.

External CSP links:

Virtual library of Formal methods CSP archive

WoTUG, the World Occam and Transputer User Group web site contains some information about CSP and useful links.


CSP tools

Formal Systems develop CSP tools, some of which are freely downloadable.