Communicating Sequential Processes

from Wikipedia, the free encyclopedia

Communicating Sequential Processes ( CSP ) is a process algebra developed by Tony Hoare at Oxford University to describe the interaction between communicating processes . The idea was first presented as an imperative language by Tony Hoare in 1978, then expanded by him into a formal algebra and made famous in 1985 with the publication of the book of the same name, Communicating Sequential Processes . According to CiteSeer, this book was the third most cited work in computer science in 2003 .

To distinguish it from the original imperative language CSP, the process algebra is also sometimes referred to as Theoretical Communicating Sequential Processes ( TCSP ).

Applications

The programming languages Go and Occam contain practical implementations of the CSP. JCSP (Communicating Sequential Processes for Java) is the combination of CSP and Occam concepts in a Java - API . A corresponding implementation for C ++ is available with C ++ CSP2 . Other applications are the Message Passing Interface and the Parallel Virtual Machine .

Extract from the syntax and semantics

  • CSP uses upper case letters for states of the machine and lower case letters for events . The state transitions triggered by events are indicated by an arrow (→).
    • (x → B)   The event x is followed by state B
    • (x → y → B)   The sequence of events x and then y is followed by state B
  • In CSP, conditional events are indicated by specifying the selection operator | Are defined.
    • (x → A | y → B)   If event x, then state A. If event y, then state B
  • The set of states and events that an automaton defined via CSP accepts is indicated by the alphabet αP. Each machine contains an additional STOP state in αP, from which a further state transition is no longer permitted by definition.
  • Sequential composition is made possible by the introduction of intermediate states.
    • P = (x → A), A = (y → B)   is equivalent to
    • P = (x → y → B)
  • The parallel connection of processes, which gave this process algebra its name, is indicated by the symbol || reached.
    • P = (a → (b → P | x → b → P))   with αP = {a, b, x}
    • Q = (a → b → Q | y → b → Q)   with αQ = {a, b, y}
    • P || Q   accepts all strings {ab, axb, yb} and any sequential combination
  • Recursions are possible.
    • P = (x → y → P)   generates the infinite sequence of events xyxyxy ...

Web links

Individual evidence

  1. CiteSeer Statistics
  2. Google Go package csp. Retrieved June 26, 2019 .