15-312 Foundations of Programming Languages
Lecture 26: The Pi-Calculus and Concurrent ML

In this lecture we first generalize the calculus of concurrent processes so that values can be transmitted during communication. But our language has no primitive values, so this just reduces to transmitting names along channels that are themselves represented as names. This means that a system of processes can dynamically change its communication structure because connections to processes can be passed as first class values. This is why the resulting language, the pi-calculus, is called a calculus of mobile and concurrent communicating processes. In the second part of the lecture we show how concurrency primitives along the lines of the pi-calculus can be embedded in ML, leading to Concurrent ML (CML).

[ Home | Schedule | Assignments | Software | Resources ]

Frank Pfenning