Communicating sequential processes, in On the construction of programs an advanced course (1980)

by C A R Hoare