Objectives

This section presents a number of concurrent extensions of C++. The extensions presented form a more or less representative selection from the numerous extensions proposed in the literature. Each extension highlights a particular approach to extending C++ with concurrency, ranging from the addition of processes to a data flow approach.

Points to emphasize

Hints

The way in which classes are used in ACT++ to dynamically determine the behavior of an actor object is worth explaining. Actually, this solution involves higher order aspects that the designers of ACT++ have not fully worked out. Another solution, involving explicit behavior descriptions, is given in the next section.

Questions

  1. What do you consider the major design issues in extending C++ with concurrency?
  2. Discuss how Concurrent C++ extends C++ with concurrency?
  3. What are the features of the actor model? Describe how ACT++ realizes the actor model for C++.
  4. Characterize how %m{}C++ extends C++ with concurrency. Do the same for Compositional C++ and Mentat/C++.

Comments

This section only gives a rather rough outline of the approaches taken to extend C++ with concurrency. If possible, try to obtain one of the systems described and let students work out some simple problems. Learning by doing is probably more effective than learning by listening.