-
Input and output in CSP are semantically identical with Occam (a
programming language for transputer processor - a building block for
parallel computers!).
-
Communications is a special event: c.v
-
c is a channel, v a value that appears on the channel.
-
So a copy process might be
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!).