Communicating Sequential Processes

Communicating Sequential Processes (CSP ) is a technology developed by Tony Hoare at the University of Oxford process algebra for the description of interaction between communicating processes. The idea was presented as imperative language in 1978 by Tony Hoare for the first time, then removed him to a formal algebra and famous in 1985 with the publication of the book with the same title Communicating Sequential Processes. This book was in 2003, according to CiteSeer already the third most cited work in computer science.

The borders to the original imperative language CSP process algebra is also sometimes referred to as Theoretical Communicating Sequential Processes ( TCSP ).

Applications

The Occam language is a practical implementation of CSP. JCSP ( Communicating Sequential Processes for Java) is the combination of CSP and Occam concepts in a Java API. With C CSP2 a corresponding implementation for C is available. Other applications include the Message Passing Interface and the Parallel Virtual Machine.

Excerpt from the syntax and semantics

  • CSP uses capital letters for states of the automaton and lowercase letters for events. The events triggered by state transitions are indicated by an arrow (→ ). (x → B) In the event x follows the state B
  • (x → y → B) In the event sequence x and then y to state B
  • In CSP -related events by specifying the selection operator | defined. (x → A | y → B) If event x, then state A. If event y, then state B
  • The set of states and events that takes over a defined CSP machine is given by the alphabet? P. Each machine contains an additional STOP to? P, from which another state transition is not allowed by definition.
  • Sequential composition is made possible by the insertion of intermediate states. P = ( x → A), A = (y → B ) is equivalent to
  • P = ( x → y → B)
  • The parallel connection of processes, which gave the name of this process algebra is, by specifying the symbol | reached |. P = ( A → (B → P | P x → ) | ( B → P) ) with a? P = {a, b, x}
  • Q = ( a → b → Q | y → b → Q) αQ = {a, b, y}
  • P | | Q accepts all strings {ab, axb, yb } and any sequential combinations
  • Recursions are possible. P = ( x → y → P) generates the infinite sequence of events xyxyxy ...
198965
de