From: Bill Findlay <yaldnif.w@blueyonder.co.uk>
Subject: Re: Dereferencing and style guides
Date: 11 Oct 2013 13:19:06 GMT
Date: 2013-10-11T13:19:06+00:00 [thread overview]
Message-ID: <556171307403189520.612579yaldnif.w-blueyonder.co.uk@news.individual.net> (raw)
In-Reply-To: wcc8uy0t1ec.fsf@shell01.TheWorld.com
Robert A Duff <bobduff@shell01.TheWorld.com> wrote:
> Bill Findlay <yaldnif.w@blueyonder.co.uk> writes:
>
>> Can I make the contrary case?
>
> Certainly.
>
>> Given that we know that P is a pointer, P.f or P(i) can only reasonably be
>> interpreted as dereferencing P and selecting a component from the result; so
>> I do not see that P^.f or P^(i) improves comprehensibility to any
>> significant degree.
>>
>> Given that we do not know that P is a pointer, P.f or P(i) is essentially
>> the same cognitive burden as R.f or A(i); from the uniform referent point of
>> view this is an advantage. It fails to be, only if the dereference fails,
>> and we know that that should not happen in Ada 8-). Even if it does, the
>> extra effort of perceiving the semantics correctly is trivial.
>
> By "dereference fails", I assume you're talking about null pointers.
> I wasn't so worried about that -- I'm more worried about
> aliasing. I'm thinking "X^.Y := ..." is a helpful reminder that
> some other pointers might also point to X^.
But even without prior knowledge that P is a pointer, there are several
ways that must be borne in mind for how P.whatever could be aliased, the
existence of another pointer with the same value as P being perhaps the
most straightforward.
{An anecdote. Many years ago I did once get major benefit from the ^
notation in Pascal. I had to convert a program from using data in an
external file to using data in virtual memory. I merely had to write a
"get" procedure for the latter and the rest of the code was essentially
unchanged, with data^ reinterpreted as a pointer dereference instead of a
file record access. The point being that there was some commonality of
syntax in Pascal with ^, and there is even more in Ada without it.}
> So I'm not convinced. But I guess your point of view is more
> popular than mine. Consider languages like Java, for ex,
> where (almost) everything is a pointer, greatly (IMHO) exacerbating
> the aliasing problem.
Yes. Yuck.
--
Bill Findlay
next prev parent reply other threads:[~2013-10-11 13:19 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-30 6:35 Dereferencing and style guides Natasha Kerensikova
2013-09-30 7:13 ` Dmitry A. Kazakov
2013-09-30 12:51 ` Robert A Duff
2013-09-30 16:49 ` Georg Bauhaus
2013-09-30 18:18 ` Jeffrey Carter
2013-10-03 19:20 ` Robert A Duff
2013-10-04 13:22 ` Georg Bauhaus
2013-10-04 13:25 ` Georg Bauhaus
2013-10-07 16:10 ` Eryndlia Mavourneen
2013-10-08 0:48 ` Robert A Duff
2013-10-10 7:35 ` Stefan.Lucks
2013-10-10 14:48 ` Adam Beneschan
2013-10-10 22:49 ` Robert A Duff
2013-10-11 8:07 ` Bill Findlay
2013-10-11 12:52 ` Robert A Duff
2013-10-11 13:02 ` G.B.
2013-10-11 13:19 ` Bill Findlay [this message]
2013-10-19 2:40 ` Randy Brukardt
2013-10-19 2:46 ` Randy Brukardt
2013-10-19 2:36 ` Randy Brukardt
2013-09-30 13:53 ` Eryndlia Mavourneen
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox