15-312 Foundations of Programming Languages
Lecture 25: Concurrent Processes
In this lecture we expand on the theme of processes we started in
the last lecture. The principal addition will be to consider processes
to run concurrently, and examine synchronization and communication
between them. We extend the notion of bisimilarity to concurrent processes,
and discover that we need a weaker notion of simulation to properly capture
program equivalence in the presence of internal computation steps.
The material loosely follows Chapter 4 and part of Chapter 5 of
Communicating and Mobile Systems: The Pi-Calculus, Robin Milner,
Cambridge University Press, 1999.