From: "(see below)" <yaldnif.w@blueyonder.co.uk>
Subject: Re: Ada OOP alternatives?
Date: Thu, 17 Jul 2008 12:07:55 +0100
Date: 2008-07-17T12:07:55+01:00 [thread overview]
Message-ID: <C4A4E69B.F1A85%yaldnif.w@blueyonder.co.uk> (raw)
In-Reply-To: wccy741fg0z.fsf@shell01.TheWorld.com
On 17/07/2008 02:36, in article wccy741fg0z.fsf@shell01.TheWorld.com,
"Robert A Duff" <bobduff@shell01.TheWorld.com> wrote:
> "(see below)" <yaldnif.w@blueyonder.co.uk> writes:
>
>> On 17/07/2008 01:05, in article wcc3am9gytt.fsf@shell01.TheWorld.com,
>> "Robert A Duff" <bobduff@shell01.TheWorld.com> wrote:
>>> I'd still rather eliminate private parts altogether.
>>
>> How would you do that while allowing ADT clients to access objects directly
>> (i.e. not via a pointer a la Java)?
>
> I'd have the compiler take a peek at the body when compiling the client.
> After all, that's what Ada compilers already do for pragma Inline.
Good point.
That does induce a bit more compile-time overhead, though, as all clients
would have to be recompiled on every update to the body.
> And I think incremental compilation can be a big win.
> In fast-compile mode, I might tolerate the "via pointer" way.
> It doesn't need to be a pointer into the heap, as in Java.
>
> We're just talking about the size of the type, really -- you say
> "access objects", but clients can't access the record components
> of a private type -- all they can do is declare objects and
> pass them around.
And copy them.
Yes, but to do that well, they need to know at least the size of the
representation.
> Java, like many languages, doesn't even _have_ separate specs.
> (And it _still_ insists on pointers for almost everything!)
I loathe the Java type system's incoherence.
> So it's clearly feasible to have information in bodies used
> when compiling clients.
Certainly.
To what extent do you think that the (optical) visibility of the
representation in the Ada private part offsets a need to give the client's
programmer a more formal statement of the semantics of the ADT?
--
Bill Findlay
<surname><forename> chez blueyonder.co.uk
next prev parent reply other threads:[~2008-07-17 11:07 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-15 20:38 Ada OOP alternatives? raould
2008-07-16 0:15 ` Robert A Duff
2008-07-16 6:33 ` Georg Bauhaus
2008-07-16 9:54 ` Alex R. Mosteo
2008-07-16 13:03 ` Dmitry A. Kazakov
2008-07-16 14:07 ` Robert A Duff
2008-07-16 18:11 ` (see below)
2008-07-17 0:05 ` Robert A Duff
2008-07-17 0:43 ` (see below)
2008-07-17 1:36 ` Robert A Duff
2008-07-17 11:07 ` (see below) [this message]
2008-07-17 16:45 ` Robert A Duff
2008-07-17 12:00 ` Dmitry A. Kazakov
2008-07-17 16:50 ` Robert A Duff
2008-07-17 18:56 ` Dmitry A. Kazakov
2008-07-18 12:54 ` Robert A Duff
2008-07-18 13:36 ` Dmitry A. Kazakov
2008-07-17 23:27 ` Randy Brukardt
2008-07-18 12:45 ` Robert A Duff
2008-07-18 23:22 ` Randy Brukardt
2008-07-22 20:32 ` Adam Beneschan
2008-07-22 22:18 ` Ludovic Brenta
2008-07-23 9:25 ` Alex R. Mosteo
2008-07-22 23:35 ` Randy Brukardt
2008-07-23 7:56 ` Dmitry A. Kazakov
2008-07-23 21:04 ` Robert A Duff
2008-07-24 7:07 ` stefan-lucks
[not found] ` <5ob7w7usrc74$.kms2e1vqs4k0.dlg@40tude.net>
[not found] ` <48883529$0$18826$9b4e6d93@newsspool2.arcor-online.net>
[not found] ` <ygdmhl22lzh4$.1dx98hja6p2o6.dlg@40tude.net>
[not found] ` <48883f41$0$18829$9b4e6d93@newsspool2.arcor-online.net>
[not found] ` <6i1s0y8eeka.121ek9qcgunha$.dlg@40tude.net>
[not found] ` <48885757$0$18818$9b4e6d93@newsspool2.arcor-online.net>
2008-07-24 12:48 ` Dmitry A. Kazakov
2008-07-25 8:47 ` Georg Bauhaus
2008-07-25 13:28 ` Dmitry A. Kazakov
2008-07-25 16:24 ` Georg Bauhaus
2008-07-25 17:55 ` Dmitry A. Kazakov
2008-07-26 5:05 ` Jeff Koftinoff
2008-07-16 14:03 ` Robert A Duff
2008-07-16 14:29 ` 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