15-312 Foundations of Programming Languages
Lecture 25: Concurrent ML
In this lecture we apply the ideas and principles of the pi-calculus
to extend ML with concurrency primitives. We illustrate the design and
type system of Concurrent ML (CML) with various examples or concurrent
programs. Concurrency is achieved by spawning simple threads. While
the thread actually share memory, the programming style of CML is
The basis for CML is synchronous communication as in the pi-calculus.
The basic abstractions are channels carrying arbitrary values (type
'a channel) corresponding to names, and and events that can
be synchronized on (type
'a event) corresponding to sums.
A good reference for CML is the book below.
Concurrent Programming in ML.
John H. Reppy.
Cambridge University Press, 1999.