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
]
fp@cs
Frank Pfenning
|