Cookies on this website

We use cookies to ensure that we give you the best experience on our website. If you click 'Accept all cookies' we'll assume that you are happy to receive all cookies and you won't see this message again. If you click 'Reject all non-essential cookies' only necessary cookies providing core functionality such as security, network management, and accessibility will be enabled. Click 'Find out more' for information on how to change your cookie settings.

This is a tutorial on Communicating Sequential Processes (CSP): a language for modelling patterns of behaviour. It explores the design of the language, and shows how it may be used to construct descriptions of behavioural properties and distributed systems. It explains also how the use of the language may be supported by verification tools. In the next section, we motivate the use of communicating sequential processes to model and reason about complex systems. After that, we present the basic constructs of CSP that can be used to define sequential processes; a number of laws and examples provide the intuition. The semantic models of CSP are the subject of Section 3, where we also introduce the notion of refinement for processes. Sections 4 and 5 present more elaborate CSP constructs to compose processes, including those that model parallel behaviour; again, an extensive number of laws and examples are presented. Data aspects of a system can also be modelled in CSP; this is discussed in Section 6. An important application of CSP is communication protocols; their modelling is discussed in Section 7. Finally, in Section 8, we briefly present the main CSP tools: FDR and Probe. © Springer-Verlag Berlin Heidelberg 2006.


Conference paper

Publication Date



3167 LNCS


64 - 122