comp.lang.ada
 help / color / mirror / Atom feed
From: Dave Thompson <david.thompson1@worldnet.att.net>
Subject: Re: Ada Pointer Size Problem
Date: Thu, 21 Oct 2004 01:16:48 GMT
Date: 2004-10-21T01:16:48+00:00	[thread overview]
Message-ID: <u73en0l91p8b62ti3e59niij03t7nv8634@4ax.com> (raw)
In-Reply-To: 6Joad.8869$UP1.8086@newsread1.news.pas.earthlink.net

On Mon, 11 Oct 2004 05:18:58 GMT, Jeffrey Carter <spam@spam.com>
wrote:

> skidmarks wrote:
<snip: access types versus addresses>
> > Any idea of what I'm really missing?
> 
> Probably the difference between pointers in simple languages and access 
> values in high-level languages. In C/++, a pointer is an int is an 
> address. In Ada, they're 3 different things.

This is overstating the case.

In C a pointer value is in practice just an address. This isn't
formally required, but traditionally it's so; the standard specifies
(intentionally) semantics that allow it; and anything else is
unacceptably (to most users) inefficient, since C requires many array
accesses -- thus including character strings -- to go through
pointers, and all pointers of a given type to be the same -- unlike
non-all access or PL/I OFFSET.

But (unlike its predecessor B) a C pointer/address is not just an int.
It has addition and subtraction, but scaled by the target size
(stride) -- and standardly only required to work within a single
variables; there is not required to be a flat address space, although
that is common and some C program/mers unportably rely on it. Other
operations which would be meaningless like multiply and divide are
prevented, and conversions are explicit, like System.Address.

In C++ the same is true for builtin/standard pointers, but the
standard library provides a number of enhanced pointer-like types that
can be used transparently, and you (or someone) can write your own.

- David.Thompson1 at worldnet.att.net



  reply	other threads:[~2004-10-21  1:16 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-10-10 19:50 Ada Pointer Size Problem skidmarks
2004-10-11  1:38 ` Stephen Leake
2004-10-12 18:44   ` skidmarks
2004-10-13  1:23     ` Jeffrey Carter
2004-10-13  8:07     ` Martin Krischik
2004-10-13 16:27     ` Jean-Pierre Rosen
2004-10-11  5:18 ` Jeffrey Carter
2004-10-21  1:16   ` Dave Thompson [this message]
2004-10-21  1:56     ` Jeffrey Carter
2004-10-21  9:54       ` Martin Krischik
2004-10-22  1:09         ` Jeffrey Carter
2004-10-22  7:48           ` Martin Krischik
2004-10-22  9:41             ` Adrien Plisson
2004-10-22 16:50               ` Warren W. Gay VE3WWG
2004-10-24 16:05               ` Martin Krischik
2004-10-23  1:35             ` Jeffrey Carter
2004-10-24 15:52               ` Martin Krischik
2004-10-22  5:41       ` Simon Wright
2004-10-22 18:05       ` Mark Lorenzen
2004-11-01  8:14       ` Dave Thompson
2004-10-11  8:45 ` Martin Krischik
     [not found]   ` <1c2f5137.0410130505.57e03c@posting.google.com>
2004-10-13 13:37     ` Dmitry A. Kazakov
2004-10-14  3:46     ` Steve
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox