comp.lang.ada
 help / color / mirror / Atom feed
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


  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