Pipe-calculus: Difference between revisions

Line 270: Line 270:
Elsevier</ref> defines ''input prefixing'' <math>c\left(x\right).P</math> and ''output prefixing'' <math>\overline{c} \langle y \rangle.P</math> to denote receiving a name via channel <math>c</math> and sending a name via channel <math>c</math> respectively, before proceeding as <math>P</math>. Although one can introduce as a convention '''synchronization''' where the communicated message is ignored, and '''broadcast''' where a group of processes are receiving messages on the same channel. In pipe-calculus these steps are separated by design.
Elsevier</ref> defines ''input prefixing'' <math>c\left(x\right).P</math> and ''output prefixing'' <math>\overline{c} \langle y \rangle.P</math> to denote receiving a name via channel <math>c</math> and sending a name via channel <math>c</math> respectively, before proceeding as <math>P</math>. Although one can introduce as a convention '''synchronization''' where the communicated message is ignored, and '''broadcast''' where a group of processes are receiving messages on the same channel. In pipe-calculus these steps are separated by design.
* In pipe-calculus there is no counterpart of '''hiding''' that prevents interference between two groups of processes that are using the same channel name for communication. Since there is no general, bidirectional parallel composition, we don't need a hiding primitive. The pipe operation naturally restricts communication to a pipeline.
* In pipe-calculus there is no counterpart of '''hiding''' that prevents interference between two groups of processes that are using the same channel name for communication. Since there is no general, bidirectional parallel composition, we don't need a hiding primitive. The pipe operation naturally restricts communication to a pipeline.
* In pipe-calculus, if a process fails to synchronize, it is aborted. This is different from the usual implementation where a process that fails to synchronize does not evolve, it keeps "waiting" for a message, opening up the possibility for asynchronous communication. As a consequence, communication in pipe-calculus is always synchronous.
* In pipe-calculus, if a process fails to synchronize, it is aborted. This is different from the usual implementation where a process that fails to synchronize does not evolve, it keeps "waiting" for a message, opening up the possibility for asynchronous communication.


== Notes ==
== Notes ==
283

edits