Review of "Concurrent and real-time systems: the CSP approach" by Steve Schneider. Wiley 1999.

Much has been done to formally talk about processes in the last decades, especially in the field of process algebras. In [Hoa85] A. Hoare laid the foundations of Communicating Sequential Processes (CSP) formalism, while in [Mil89] Milner proposed the slightly different approach of Calculus of Communicating Systems (CCS). Both process algebras have been extensively used to model and verify concurrent systems, and recent publications prove the richness of the formalisms ([Ros97], [Mil99], [Fok00]). Concurrent and Real-time Systems. The CSP Approach was published in 1999 and since then has been one of the most referenced books on CSP. Let us start with the basics. CSP provides a language for writing processes that perform local or external events and communicate with each other. It is very important to understand from the very beginning the view that CSP has on events/actions: there are external events from a set Σ and only one internal event named τ , which means that CSP focuses on the external behavior of processes and regards all possible internal events as identical. For the beginning, we consider the language for sequential processes, without taking communication into account. The simplest process is STOP : it does not perform any action; the next simplest process is SKIP , which can do nothing except performing the special termination event √ .3 a −→ P (a then P ) performs event a and then behaves as the process P . A process that can engage in any of the events in set A and, after choosing some a ∈ A, behaves as P (a) is called menu (prefix) choice and is written as x : A −→ P (x).

[1]  Andrew William Roscoe,et al.  The Theory and Practice of Concurrency , 1997 .

[2]  Davide Sangiorgi,et al.  Communicating and Mobile Systems: the π-calculus, , 2000 .

[3]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[4]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[5]  Wan Fokkink,et al.  Introduction to Process Algebra , 1999, Texts in Theoretical Computer Science. An EATCS Series.

[6]  Robin Milner,et al.  Communicating and mobile systems - the Pi-calculus , 1999 .