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
next prev parent 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