Pi-calculus is a form of process calculus, as considered in earlier lectures. Although Pict is based on pi-calculus, there are some important differences, some restrictions, and a lot of syntactic sugar designed to make it easier to write larger programs. The main features of pi-calculus that distinguish it from other process calculi with explicit input and output are transmission of channels and the treatment of replication. In pi-calculus, channel names are treated as data and may therefore may be transmitted on channels. However, like most of the other systems we have considered, and unlike Obliq, for example, process distribution and migration are implicit in the model.
Replication is a technical device that serves in place of recursion.
Specifically, a process that reads input may replicate itself before reading input. More precisely, the form of Pict process output is restricted so that the formal semantics are consistent with an asynchronous interpretation of communication. However, synchronous communication may be simulated by waiting until an explicit acknowledgement is received. A process reads input, writes output, is a parallel composition of processes or is a process with a locally declared channel. The difference between communication and replicated communication is that in replicated communication, the process receiving the communication is duplicated, with one copy accepting the input and the other copy remaining ready to accept another communication of the same form.