Pipe-calculus: Difference between revisions

Line 129: Line 129:
The following example fails because synchronisation cannot occur between different atoms.
The following example fails because synchronisation cannot occur between different atoms.


<math>a^+ . s \rhd b^- . t = \mathsf{fail}</math>
<math>a^+ . s \rhd b^- . t = \bot</math>


If any of the arguments is a choice, each fork of the left side is paired with each fork of the right side.
If any of the arguments is a choice, each fork of the left side is paired with each fork of the right side.
Line 137: Line 137:
==== 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. In <math>P1 | P2</math> it cannot occur that 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.
Unix processes can handle more than one input and output streams, but only the standard input and output streams are passed on through the pipe.


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

edits