POOL is an object-oriented language designed to run on parallel computers. This book collects seven papers about POOL. Although all have been published elsewhere, they gain by being brought together. The first and longest is an admirably lucid explanation of the design choices to be made in introducing parallelism into an object-oriented language. It covers the merits of adding processes as an additional programming structure, making message sends asynchronous, and giving each object a body that executes independently of any messages received. The designers of POOL chose to give objects bodies, but stay with synchronous communications. Inheritance of code is distinguished from subtyping between protocols. Both prove infeasible to incorporate, largely because of the difficulties of handling the bodies formally.
The remaining papers are concerned with the operational and denotational semantics and their equivalence, using, unusually, the domain of metric spaces for discussing fixed points. They require some mathematical literacy and are unavoidably fairly dense, even though the material is explained well. No explicit attempt is made to relate or link the papers, leading to some overlap in the exposition of the mathematical basics. The binding is unfortunately totally inadequate to hold together the 300 pages of a volume that, even for the first paper alone, deserves repeated attention.