2. How would you classify object-oriented languages? Name a fewrepresentatives of each category.

3. What do you consider to be the major characteristic of the objectmodel supported by C++? Explain.

4. Why would you need friends?

5. How would you characterize the difference between object-based andobject-oriented?

6. Along what orthogonal dimensions would you design an object-oriented language? Explain.

7. Give a characterisation of active objects. In what situations may activeobjects be advantageous?

8. How would you characterize prototype-based languages?

9. What are the differences between inheritance and delegation? DoesC++ support delegation? Explain. And Java?

10. How would you characterize the concept of a class?

11. Can you sketch the meta architecture of Smalltalk?

12. How would you phrase the postulates underlying class-basedlanguages? Can you give a reflective version of these postulates?

Further reading

A concise treatment of programming languages is given in[BG94]. Further, you may want to consult [Wegner87], whichcontains the original presentation of the discussion concerning thedistinction between object-based and object-oriented. For Java,read the original white paper, [Java]. An interesting extension ofC++ is described in [Petitpierre98]. At the corresponding web site,http://ltiwww.epfl.ch/sCxx , there is much additional material.Finally, for an account of the design and evolution of C++, read[Stroustrup97]. For more information on C++, visithttp://www.accu.org , and for Java, http://www.javasoft.com .