Science  People  Locations  Timeline
Index: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Home > Communicating sequential processes


 

For the university called CSP, see Concordia University, Saint Paul.

In computer science, Communicating Sequential Processes (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 (albeit a very unreliable source due to the nature of it sampling).

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. CSP introduces a process algebra which is used to describe a process' communications with its environment.

a -> P is the process which is willing to communicate a with its environment and after a, behaves like the process P.

STOP represents the process which can communicate nothing. It is also called deadlock.

P [] Q is the process which is willing to communicate the first events of P or of Q and then behaves accordingly. This represents deterministic choice - the environment chooses which events are done.

P |~| Q can behave like either P or Q. It can refuse to accept the first events of P or of Q and is only obliged to communicate if the environment offers both. This represents nondeterministic choice - the process can choose which events should be done. Nondeterminism can be introduced by a seemingly deterministic process as in the following:

(a -> a -> STOP) [] (a -> b -> STOP) = a -> ((a -> STOP) |~| (b -> STOP))

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

A person who might choose to use a coin or card could be modelled as:

(coin -> STOP) [] (card -> STOP)

These two processes can be put in parallel, the resulting processes depending on the events they must syncronise on. If this was both "coin" and "card", the resulting process would be:

coin -> choc -> STOP

whereas if synchronizationSynchronization is coordination with respect to time. It is an important concept in the following fields: Computer science Physics Telecommunication Cryptography Multimedia Photography Music ( rhythm) Synchronization has several subtly distinct sub-concep was only required on "coin", the resulting process would be:

(coin -> choc -> STOP) [] (card ->STOP)

Events can be abstracted in CSP by various mechanisms such as hiding events and renaming events. If we hide the "coin" and "card" events from the second of the combined processes, we get the nondeterministic process:

(choc -> STOP) |~| STOP

This is a process which either offers a "choc" event and then stops, or just stops. In other words, if we treat the abstraction as an external view of the system (eg. someone who does not see the decisionA decision is the commitment to irrevocably allocate valuable resources. A decision is a commitment to act. See Action. Action is the irrevocable allocation of valuable resources. reached by the personIn colloquial English, person is often synonymous with human''. However, in philosophy, there have been debates over the precise meaning and correct usage of the word, and what the criteria for personhood are. Are all persons human? Firstly, there is the), a nondeterminism has been introduced.



Read more »

Non User