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,b30bd69fa8f63cb2 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-06-21 00:25:52 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!logbridge.uoregon.edu!fu-berlin.de!uni-berlin.de!dialin-145-254-036-244.arcor-ip.NET!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: C bug of the day Date: Sat, 21 Jun 2003 09:28:40 +0200 Organization: At home Message-ID: References: <1054751321.434656@master.nyc.kbcfp.com> <7gBHa.12174$KF1.273806@amstwist00> <7RQHa.3141$Uh2.339@nwrdny01.gnilink.net> Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: dialin-145-254-036-244.arcor-ip.net (145.254.36.244) Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7Bit X-Trace: fu-berlin.de 1056180351 24199783 145.254.36.244 (16 [77047]) User-Agent: KNode/0.7.1 Xref: archiver1.google.com comp.lang.ada:39518 Date: 2003-06-21T09:28:40+02:00 List-Id: Mark A. Biggar wrote: > Dmitry A. Kazakov wrote: > >> 2. multiple inheritance >> >> Missing 2. in Ada is clearly a design fault. > > Not really, just a realization at the time (92-93) that they couldn't > make too big a change in the language, if they wanted the implementors > to go with the changes to the standard. MI was considered along with > the current SI model and it was determined that given all the extra > mechanisms needed to solve such problems as the method/field ambiguities > in the diamond inheritance example it was too big a change to the > language. Note that the language already had most of what what was > needed for SI in derived types so all they had to add was support for > field extension when deriving and a protocol for run-time dispatch. > SI also has a very simple implementation model (the tag field is a > simple pointer to a vtable with constant offsets for method lookup). > But as MI needs to deal with multiple inherited vtables with much more > complicated implementation. I meant design not as a process, which is IMO very successful in case of Ada. But at some point, one should stop and reconsider the basics disregarding the history of particular language features. What is good about Ada design *process* is that AFAIK no irreparable faults were made. It is still possible to add MI and MD to Ada when dust will settle down. (:-)) -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de