From: "Robert I. Eachus" <rieachus@attbi.com>
Subject: Re: MI in Ada 200X (was: Suggestion for Ada 200x - Interface inheritance)
Date: Thu, 29 May 2003 02:13:07 GMT
Date: 2003-05-29T02:13:07+00:00 [thread overview]
Message-ID: <3ED56CA9.6050301@attbi.com> (raw)
In-Reply-To: 4a4de33a.0305280557.5d5aba37@posting.google.com
M�rio Amado Alves wrote:
> Everybody wants class MI. The reasons it was left out of Ada 95 and
> 83, the cons, are weaker than the pros. So every Adaist whishes to see
> it in Ada 200X.
I must not be everybody. Ada currently supports the mix-in model of
multiple inheritance. I sometimes have a type declaration followed by
half a dozen mixins:
type Visible is tagged private;
private
type Foo is abstract tagged record...end record;
type Foo1 is new Mixin1(Foo,...);
type Foo2 is new Mixin2(Foo1,...);
type Foo3 is new Mixin3(Foo2,...);
...
type Visible type is new MixinN(FooN,...);
I've even used multiple instances of the same mixin, for example a
sparse array implementation which used two instances of the same linked
list package. (The matricies I was working with were sparse enough that
walking a list was probably faster than using a tree index. But I could
have added two AVL tree mixins if necessary with little change to the code.)
The only problem I have with this approach is the need to come up with
all those intermediate type names. (But the names are necessary, you
have to use them in the calls to the various mixins. Even if you could
use the name of the generic, it could be ambiguous, as in the sparse
matrix example. But Bar(Foo2(Object)) calls the right Bar operation.
I have no objection to adding the interface abstraction to Ada, but to
me in is a solution to problems other than MI.
next prev parent reply other threads:[~2003-05-29 2:13 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-23 23:05 Suggestion for Ada 200x - Interface inheritance Steve
2003-05-24 1:02 ` Robert A Duff
2003-05-29 16:47 ` Brian Gaffney
2003-06-01 10:29 ` Craig Carey
2003-05-24 12:35 ` Wojtek Narczynski
2003-05-24 17:53 ` Georg Bauhaus
2003-05-25 13:11 ` Wojtek Narczynski
2003-05-24 22:07 ` Robert A Duff
2003-05-25 14:12 ` Wojtek Narczynski
2003-05-25 17:53 ` Jeffrey Carter
2003-05-25 18:47 ` Wesley Groleau
2003-05-25 19:42 ` Hyman Rosen
2003-05-26 7:53 ` Wojtek Narczynski
2003-05-26 15:50 ` Hyman Rosen
2003-05-27 18:41 ` Wojtek Narczynski
2003-05-27 18:55 ` Wesley Groleau
2003-05-27 19:13 ` Hyman Rosen
2003-05-28 13:07 ` Wojtek Narczynski
2003-05-28 13:28 ` Jean-Pierre Rosen
2003-05-29 0:58 ` Hyman Rosen
2003-05-28 22:13 ` Robert A Duff
2003-05-28 23:50 ` Hyman Rosen
2003-05-29 9:17 ` Dmitry A. Kazakov
2003-05-29 13:31 ` Wojtek Narczynski
2003-05-26 7:51 ` Wojtek Narczynski
2003-05-25 1:33 ` Steve
2003-05-25 10:37 ` Simon Wright
2003-05-26 7:54 ` Jean-Pierre Rosen
2003-05-26 10:07 ` Preben Randhol
2003-05-26 16:32 ` Pascal Obry
2003-05-26 16:59 ` Preben Randhol
2003-06-01 10:53 ` Craig Carey
2003-06-01 12:17 ` Preben Randhol
2003-05-26 7:49 ` Jean-Pierre Rosen
2003-06-02 9:01 ` Wojtek Narczynski
2003-05-28 13:57 ` MI in Ada 200X (was: Suggestion for Ada 200x - Interface inheritance) Mário Amado Alves
2003-05-28 15:05 ` Preben Randhol
2003-05-29 0:54 ` MI in Ada 200X Hyman Rosen
2003-05-29 17:38 ` Stephen Leake
2003-05-30 7:20 ` Preben Randhol
2003-05-29 9:17 ` MI in Ada 200X (was: Suggestion for Ada 200x - Interface inheritance) Dmitry A. Kazakov
2003-05-29 22:56 ` MI in Ada 200X Hyman Rosen
2003-05-30 7:39 ` Dmitry A. Kazakov
2003-05-30 13:11 ` Hyman Rosen
2003-05-30 14:29 ` Robert A Duff
2003-05-30 14:51 ` Hyman Rosen
2003-05-30 15:11 ` Mark A. Biggar
2003-05-30 15:51 ` Hyman Rosen
2003-05-30 22:38 ` John Griffiths
2003-05-30 2:50 ` Wesley Groleau
2003-05-30 7:38 ` Dmitry A. Kazakov
2003-05-30 12:20 ` Karel Miklav
2003-05-30 12:59 ` Hyman Rosen
2003-05-30 14:02 ` Georg Bauhaus
2003-05-30 14:04 ` Lutz Donnerhacke
2003-05-30 18:45 ` Georg Bauhaus
2003-05-30 15:02 ` Hyman Rosen
2003-05-30 19:14 ` Georg Bauhaus
2003-05-30 19:40 ` Hyman Rosen
2003-05-30 19:31 ` Wojtek Narczynski
2003-05-30 22:42 ` John Griffiths
2003-05-31 9:27 ` Dmitry A. Kazakov
2003-05-31 13:53 ` Martin Krischik
2003-06-01 9:18 ` Dmitry A. Kazakov
2003-05-30 8:28 ` Mário Amado Alves
2003-05-30 8:46 ` MI in Ada 200X (was: Suggestion for Ada 200x - Interface inheritance) Preben Randhol
2003-05-31 10:17 ` Dmitry A. Kazakov
2003-05-31 13:48 ` Preben Randhol
2003-05-31 17:21 ` Dmitry A. Kazakov
2003-05-29 0:54 ` MI in Ada 200X Hyman Rosen
2003-05-29 2:13 ` Robert I. Eachus [this message]
2003-05-29 12:06 ` MI in Ada 200X (was: Suggestion for Ada 200x - Interface inheritance) Mário Amado Alves
2003-05-31 19:58 ` Chad R. Meiners
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox