The pi-calculus extends CCS by allowing channel names to be transmitted as messages. Why is this capability important?
Think about your answer, then reveal below.
Model answer: Name passing enables dynamic reconfiguration of communication topology. A process can receive a channel name and then use it to communicate with a previously unknown partner, modeling scenarios like passing a callback, establishing a private communication link, or delegating a session to another process. CCS's communication topology is fixed by the process syntax; the pi-calculus's topology can evolve during execution, making it expressive enough to model mobile and reconfigurable systems.
This is the fundamental innovation of the pi-calculus: communication channels are first-class values that can be created, passed, and received. The process (new c)(a<c>.P | a(x).Q) creates a fresh channel c, sends it over a, and the receiver Q can then communicate on c — establishing a private link that did not exist before. This expressiveness makes the pi-calculus a natural foundation for modeling object-oriented systems (objects are processes, method calls are channel communications), mobile code, and session-based protocols.