comp.lang.ada
 help / color / mirror / Atom feed
From: eachus@spectre.mitre.org (Robert I. Eachus)
Subject: Re: Mut. Recurs. in Ada9X w/o Breaking Encaps.? (LONG)
Date: 3 Oct 94 11:29:19
Date: 1994-10-03T11:29:19+00:00	[thread overview]
Message-ID: <EACHUS.94Oct3112919@spectre.mitre.org> (raw)
In-Reply-To: jgv@swl.msd.ray.com's message of Sat, 1 Oct 1994 01:47:58 GMT

In article <1994Oct1.014758.10687@swlvx2.msd.ray.com> jgv@swl.msd.ray.com (John Volan) writes:

  > ... Suppose, instead of just writing package
  > "Employees_And_Offices", we had to write package "Company".
  > Suppose we tried to support not only Employees and Offices, but
  > also other things in the problem domain of Company management.
  > Things like Memos and Meetings and Job_Descriptions and
  > Inventories and Stock and Benefits and so on and on and on ...

   Hmmm... I can have a model of a company MIS environment where there
is one package of high-level abstractions such as people, places, and
things.  I can also have lower-level abstractions, which can be a
hierarchy of child packages, since I want to have this as a sub
system.  Seems like a reasonable approach, we just have to rename some
of the types in the examples:

    type People is abstract tagged private;
    type People_Pointer is access People'Class;
    ...etc.

    Now everything at the top level seems reasonable, and the lower
down decisions, such as whether consultants can be assigned offices,
is implementable at the appropriate level.  Adding attributes to the
top level abstraction of people will require modifications to the root
package, for example adding a fax number field, or a teleport address.

    I assume that such modifications occur at a relatively slow pace,
but notice that recently we have had at least TWO additions to
business cards--fax number and e-mail address.  The previous sucn
change was the addition of telephone numbers (or perhaps area codes
for telephone numbers).  But that started happening about a century
ago.  (Area codes started appearing in the late fifties.)  The next
addition will probably be photographs--the MITRE on-line directory has
them now.

  > On the other hand, if we can manage to maintain 1 Package = 1
  > Class even despite mutual recursion, then we at least have some
  > hope of managing a large, complex problem -- one class at a time.
  > Isn't that what object-orientation is all about?

    Here I have to disagree, but it may be an issue of terminology.
In Smalltalk there is ONE superclass.  Do you hear complaints about
Smalltalk which state that this prevents encapsulation?  No.

    As I see it you are really arguing that superclasses shouldn't
have to "know" about subclass specific interfaces and details.  Stated
that way, I don't have a problem with your assertion, or with Ada 9X.

    However, identifying the appropriate level in the tree for a
specific interface is always going to be a hard problem.  And we are
going to spend a lot of time fixing wrong guesses.  That is a part of
the design (and programming) process, and probably can never be
eliminated entirely.

--

					Robert I. Eachus

with Standard_Disclaimer;
use  Standard_Disclaimer;
function Message (Text: in Clever_Ideas) return Better_Ideas is...



  parent reply	other threads:[~1994-10-03 11:29 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1994-09-27 16:52 Mut. Recurs. in Ada9X w/o Breaking Encaps.? (LONG) John Volan
1994-09-27 18:48 ` Mark A Biggar
1994-09-29  1:46   ` John Volan
1994-09-29 13:57     ` Tucker Taft
1994-09-29 17:20       ` Bjarne Stroustrup <9758-26353> 0112760
1994-09-30  1:38         ` Tucker Taft
1994-09-30 12:33           ` Bjarne Stroustrup <9758-26353> 0112760
1994-09-29 18:37       ` John Volan
1994-09-29 19:34         ` David Weller
1994-09-30 22:13           ` John Volan
1994-10-02  3:31             ` Andrew Lees
1994-09-30  1:47         ` Tucker Taft
1994-09-30 13:30           ` John Volan
1994-09-29 18:10     ` R. William Beckwith
1994-10-03  0:33     ` Cyrille Comar
1994-09-28 14:01 ` Norman H. Cohen
1994-09-29  2:12   ` John Volan
1994-09-29 14:01     ` Tucker Taft
1994-09-29 18:37     ` Norman H. Cohen
1994-09-29  9:48   ` Magnus Kempe
1994-09-29 13:10     ` Magnus Kempe
1994-09-29 18:05       ` Tucker Taft
1994-09-30 10:20         ` Mut. Recurs. in Ada9X w/o Breaking Encaps.? Magnus Kempe
1994-09-30 13:22           ` Tucker Taft
1994-10-01  1:24       ` Mut. Recurs. in Ada9X w/o Breaking Encaps.? (LONG) Adam Beneschan
1994-10-01 12:01         ` Magnus Kempe
1994-10-01 18:43         ` Mark A Biggar
1994-10-02 16:41         ` John Volan
1994-10-02 23:33           ` Matt Kennel
1994-10-03  8:07           ` Mut. Recurs. in Ada9X w/o Breaking Encaps.? Magnus Kempe
1994-10-03 12:14           ` Mut. Recurs. in Ada9X w/o Breaking Encaps.? (LONG) Robert I. Eachus
1994-10-04  2:12             ` R. William Beckwith
1994-10-04 16:00             ` John Volan
1994-10-05 11:42               ` Robert I. Eachus
1994-10-05 21:09               ` Matt Kennel
1994-10-03 20:29           ` Harry Koehnemann
1994-09-29 13:35     ` John Volan
1994-09-30 20:27       ` Norman H. Cohen
1994-10-01  1:47         ` John Volan
1994-10-01 20:44           ` Tucker Taft
1994-10-03 11:29           ` Robert I. Eachus [this message]
1994-09-30 22:46       ` Matt Kennel
1994-10-01  2:11         ` John Volan
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox