[comp.lang.misc] object oriented design decisions

dan-hankins@cup.portal.com (Daniel B Hankins) (10/29/88)

In the process of designing an object oriented language, I have come up
against two issues.  I have some idea of what to do with them, but would
like to hear other opinions on the topic.

1. Should I have lexical scoping for classes?  That is, should I allow:

   class X;
     .
     .
     .
     class Y;
     .
     .
     .
     endclass Y;
   endclass X;

   where Y is a class name known only within class X.  Y knows the names of:
   * its scope-children classes
   * its scope-sibling classes
   * its scope-ancestor classes
   Note that this is not an inheritance relation, only a class name
   relation.
   The purpose of this is to allow situations in which class DRINK and
   class TOOL each have a subclass SCREWDRIVER, and each subclass has
   different behavior.  It also allows class X to have superclass Y.  This
   can actually be useful on occasion.

2. fine-grained inheritance control.

   for instance:

      class X;
        superclasses A, B, C;
        from L inherit K;
        .
        .
        .

   where K is a message pattern understood by L or the name of some local
   datum of L.  If K is a pattern name, then both the handler and any local
   data it uses are inherited.

Any comments?


Dan Hankins