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