[mod.ai] Seminar - Delegation and Inheritance

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