Instructors' Guide: Objects and processes

Objectives

This section discusses the language support needed for extending the object model with concurrency and distribution. Three ways to add concurrency to a language supporting objects are discussed. Following  [Wegner87], we also reflect on the encapsulation capabilities of processes. The notion of active objects is introduced as a solution to unifying object and process capabilities.

Points to emphasize


slide: Points to emphasize

Hints

The discussion of processes and threads is based on  [Wegner87]. You may need to discuss the notion of threads somewhat more extensively if students are not familiar with issues of concurrency. It is important to explain why concurrent extensions of object-oriented languages may be considered useful! Students may ask you: ``Why not use the Unix fork statement?''. Yes, why not?

Questions

  1. What ways can you think of to extend object-based languages with concurrency features?
  2. How would you characterize the notion of active objects?

slide: Questions

Comments

I have taken the liberty of including some examples of Active C++, a research language developed in my group. You may translate these examples to, for example, Ada or POOL-T, if you wish.