jhc@OZ.AI.MIT.EDU (Jonathan Connell) (03/05/86)
[Forwarded from the MIT bboard by SASW@MC.LCS.MIT.EDU.] Thursday , March 6 4:00pm Room: NE43- 8th floor Playroom The Artificial Intelligence Lab Revolving Seminar Series Delegation And Inheritance: Two Mechanisms for Sharing Knowledge in Object-Oriented Systems Henry Lieberman AI Lab, MIT When a group of objects in an object oriented programming system shares some common behavior, how can we avoid re-programming behavior in every object that needs it? I will explore the consequences of two mechanisms for sharing knowledge, Inheritance and Delegation, for expressiveness and performance of object oriented languages. Using Inheritance, behavior common to a group of objects is encoded in a Class object, which contains procedures for responding to messages, and the names of variables that the procedure may access. Each class may create a set of Instances, which share the procedures of the class, but may have their own private values for the variables. Subclasses may extend classes by adding additional procedures and variables. Another way of sharing behavior is Delegation, which views each object as a prototype capable of creating new objects by copying or reference, removing the distinction between classes and instances. General and specialized objects communicate using message passing rather than a "hard wired" mechanism. Communication patterns can be determined at message reception time rather than at compile time or object creation time. There is a time/space tradeoff between inheritance and delegation, delegation permitting smaller objects at the cost of increased message traffic. Refreshments at 3:30