Communication - Input, Output and Pipes

COPY = (left?x #tex2html_wrap_inline4160# right!x #tex2html_wrap_inline4162# X) We now mess up the elegance of the language, because we have to start worrying about a type system for the values on channels! As a convenient shorthand for processes which have a single input channel and a single output channel, finally, we have a pipe operator for connecting them via this channel, while at the same time hiding it (this is another example of the hidinh abstraction, where the level of specification is raised to conceal details about ordering that are not relevant): if P = ( something #tex2html_wrap_inline4164# right!x #tex2html_wrap_inline4166# P ) and Q = left?x #tex2html_wrap_inline4168# somethingelse #tex2html_wrap_inline4170# Q ) then (P || Q) is such a common thing that we write: #tex2html_wrap_inline4174# (subject to alphabetic constraints!).