Pipe-calculus: Difference between revisions

Line 117: Line 117:
<math>\rhd</math> does not occur in the normal form of closed terms.
<math>\rhd</math> does not occur in the normal form of closed terms.


Synchronisation and communication
Synchronisation


==== Pipe and Unix pipelines ====
==== Pipe and Unix pipelines ====


A [[Wikipedia:Pipeline_(Unix)|pipeline]] in Unix shell programming is a good analogy for the pipe combinator. Piped programs execute concurrently. It cannot occur that in <math>P1 | P2</math> the output of <math>P1</math> directly reaches the output of the pipeline.
A [[Wikipedia:Pipeline_(Unix)|pipeline]] in Unix shell programming is a good analogy for the pipe combinator. Piped programs execute concurrently. It cannot occur that in <math>P1 | P2</math> the output of <math>P1</math> directly reaches the output of the pipeline.
It is an essential difference though that Unix processes can handle more than one input and output streams, and only the standard input and output streams are passed on through the pipe. Another difference is the degree of concurrency. Race conditions can't occur between pipe-calculus processes unlike between OS level processes<ref>That's why I prefer the term ''cooperation'' to describe the interdependencies of pipe-calculus processes.</ref>.
It is an essential difference though that Unix processes can handle more than one input and output streams, and only the standard input and output streams are passed on through the pipe.


==== Recognition and interpretation ====
==== Recognition and interpretation ====
283

edits