From: Vincent <vincent.diemunsch@gmail.com>
Subject: Re: Ada design bug or GNAT bug?
Date: Mon, 6 Jul 2015 05:37:32 -0700 (PDT)
Date: 2015-07-06T05:37:32-07:00 [thread overview]
Message-ID: <701370ff-559b-458f-a107-793095a15749@googlegroups.com> (raw)
In-Reply-To: <mn4jj1$n50$3@loke.gir.dk>
Le vendredi 3 juillet 2015 02:04:50 UTC+2, Randy Brukardt a écrit :
> The type Ichbiah wanted was syntactic sugar only. The semantics would have
> been very similar to that of tagged types. The primary difference would have
> been that we wouldn't have had to wait for Ada 2005 to get prefix calls.
>
> [...]
> >One may think that the distinction between class type and tagged type is
> >subtle, but the implications of it are huge : without class object one
> >needs as replacement access to a class wide type. This has led to the use
> >of access values everywhere when doing OOP.
> >To ease the pain access parameters and anonymous access types were
> >introduced...
>
> This seems to me to be nonsense. There's no need to use access types in Ada
> OOP interfaces; "in out T" and "access T" have virtually the same semantics
> when T is a tagged type. (Claw only has one access type in its entire
> interface, used for a return type that ought to be by reference. Everything
> else does not use visible access types.) It's more work this way, but it's
> definitely possible.
Yes it is possible, but it is more work, since one has to encapsulate the access
type into a "handle object". The pity is that this work is not done by the compiler, through a proper language defined mecanism. (This is what I think of when I speak of a "class type").
And even if you and I call it nonsense to use access types everywhere in case of
polymorphism, many textbooks present it as the normal Ada way of Advanced OOP.
Therefore I maintain that the "tagged type" concept of Ada 95 was, at least, incomplete, not to say awkward.
Regards,
Vincent
next prev parent reply other threads:[~2015-07-06 12:37 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-20 18:55 Ada design bug or GNAT bug? Dmitry A. Kazakov
2015-06-21 2:42 ` Randy Brukardt
2015-06-21 6:47 ` Dmitry A. Kazakov
2015-06-22 17:39 ` Randy Brukardt
2015-06-22 18:16 ` Dmitry A. Kazakov
2015-06-23 11:00 ` G.B.
2015-06-23 14:27 ` Dmitry A. Kazakov
2015-06-23 11:45 ` G.B.
2015-06-23 14:30 ` Dmitry A. Kazakov
2015-07-02 22:22 ` Randy Brukardt
2015-07-03 8:02 ` Dmitry A. Kazakov
2015-07-03 17:33 ` Randy Brukardt
2015-07-03 21:34 ` Dmitry A. Kazakov
2015-07-04 3:11 ` Randy Brukardt
2015-07-04 12:14 ` Dmitry A. Kazakov
2015-07-05 0:53 ` Randy Brukardt
2015-06-22 18:27 ` Shark8
2015-06-23 11:51 ` vincent.diemunsch
2015-06-23 19:55 ` Shark8
2015-06-23 13:06 ` vincent.diemunsch
2015-06-23 14:30 ` David Botton
2015-06-23 15:57 ` Niklas Holsti
2015-06-23 16:01 ` G.B.
2015-06-23 18:05 ` David Botton
2015-06-23 19:38 ` David Botton
2015-06-23 14:38 ` Dmitry A. Kazakov
2015-06-23 16:57 ` Vincent
2015-06-23 17:15 ` Dmitry A. Kazakov
2015-06-23 19:14 ` vincent.diemunsch
2015-06-23 19:33 ` Dmitry A. Kazakov
2015-06-23 17:42 ` Jeffrey R. Carter
2015-07-02 22:06 ` Randy Brukardt
2015-07-04 1:52 ` Shark8
2015-07-04 3:24 ` Randy Brukardt
2015-07-04 11:02 ` Build-in-place semantics? (Was: Ada design bug or GNAT bug?) Jacob Sparre Andersen
2015-07-04 12:15 ` Dmitry A. Kazakov
2015-07-05 0:45 ` Randy Brukardt
2015-07-05 7:10 ` Dmitry A. Kazakov
2015-07-05 0:40 ` Randy Brukardt
2015-07-04 14:05 ` Ada design bug or GNAT bug? Bob Duff
2015-07-04 7:46 ` Simon Wright
2015-07-04 12:00 ` Björn Lundin
2015-07-05 0:48 ` Randy Brukardt
2015-07-06 12:37 ` Vincent [this message]
2015-07-06 20:05 ` Randy Brukardt
2015-07-07 8:06 ` Dmitry A. Kazakov
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox