comp.lang.ada
 help / color / mirror / Atom feed
From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Dereferencing and style guides
Date: Fri, 11 Oct 2013 08:52:59 -0400
Date: 2013-10-11T08:52:59-04:00	[thread overview]
Message-ID: <wcc8uy0t1ec.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: CE7D704E.38619%yaldnif.w@blueyonder.co.uk

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^.

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.

A pure functional language would be different: there, the semantics
of "a thing" and "a pointer to a thing" are indistinguishable,
so there's no reason to have explicit dereference operators.

- Bob


  reply	other threads:[~2013-10-11 12:52 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 [this message]
2013-10-11 13:02                     ` G.B.
2013-10-11 13:19                     ` Bill Findlay
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