From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,1592759aa83d0d45 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-05-30 00:37:05 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!headwall.stanford.edu!fu-berlin.de!uni-berlin.de!dialin-145-254-040-138.arcor-ip.NET!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: MI in Ada 200X Date: Fri, 30 May 2003 09:39:22 +0200 Organization: At home Message-ID: References: <0Pxza.699607$OV.652508@rwcrnsc54> <4a4de33a.0305280557.5d5aba37@posting.google.com> Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: dialin-145-254-040-138.arcor-ip.net (145.254.40.138) Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7Bit X-Trace: fu-berlin.de 1054280224 6827494 145.254.40.138 (16 [77047]) User-Agent: KNode/0.7.1 Xref: archiver1.google.com comp.lang.ada:38047 Date: 2003-05-30T09:39:22+02:00 List-Id: Hyman Rosen wrote: > Dmitry A. Kazakov wrote: >> Now consider a possibility that MI has a problem X. Then, obviously, >> either X is a problem of the concept of inheritance (1), or X is a >> problem of the language, implementation, our understanding etc (2). > > MI has implementation difficulties that are distinct from SI, > related to the layout in memory of the pieces of the full object. We already had a discussion about implementation vs. interface inheritance. BTW this thread started from abstract interface inheritance and then jumped to more general cases of MI. Which is a valid point. Any concept adopted by a language has to be extended to its natural limits, to the point where no further extension possible. How often people use multi-dimensional arrays? Once per year? Yet Ada has them. There is nothing worse in language design, than arbitrary constraints. The difficulties you are talking about is just one particular case caused by attempts to equalize specific and class-wide objects (embedded tags, by-reference semantics etc.) There is other way, I hope. > As I said, it is very instructive to check out the C++ ABI which > gcc uses. -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de