M any of the ideas behind object-oriented programming have roots going back to SIMULA (Dahl & Nygaard, 1966). The first substantial interactive, display-based im-plementation was the SMALLTALK language (Goldberg & Robson, 1983). The object-oriented style has of-ten been advocated for simulation programs, systems pro-gramming, graphics, and AI programming. The history of ideas has some additional threads including work on message passing as in ACTORS (Lieberman, 1981), and multiple inheritance as in FLAVORS (Weinreb & Moon, 1981). It is also related to a line of work in AI on the the-ory of frames (Minsky, 1975) and their implementation in knowledge representation languages such as KRL (Bobro