Re: Ada exception block does NOT work?



"Robert A Duff" <bobduff@xxxxxxxxxxxxxxxxxxxx> wrote in message
news:wccslx4gumc.fsf@xxxxxxxxxxxxxxxxxxxxxxx
> ...
> To me, "pointer" does not imply "a single machine address".
> To me, "pointer" means something that can point at things,
> and that includes fat pointers, pointers containing array
> dope, pointers represented as offsets instead of addresses,
> double indirections, &c.

Thats fine, but also understand that to many others, "pointer" does mean "a
single machine address". It certainly does not hurt to introduce a new term
to avoid potential misunderstandings.

> To me, "pointer" and "reference" are synonymous.

OK, but just be aware that in C++, "pointer" and "reference" are not
synonyms.

> And "address" or "machine address" can be used for the hardware-level
> concept.
>
> An index into an array can be used as a pointer to a particular
> array element.

So the number 3 can be thought of as a pointer into any array indexed by a
integer. An interesting concept, but this is certainly a non-standard use of
the term "pointer".

> Ada evolved from Pascal, and Pascal called them pointers.
> In Pascal, there was no requirement or implication that
> they must be a single machine address. There is no need
> for array dope in Pascal, but adding array dope doesn't seem
> like it requires renaming the whole concept.

For the record, I know of no Pascal compiler that implements a pointer as
anything other than a machine address.

>> As for Integer, you're quite right, but it's also quite natural to use
>> that name (or a shortened form of it) for such a subset. Such a usage is
>> quite common in computer languages; see FORTRAN (1955?) for an
>> example. What would be a better name for such a type?
>
> I'd use "Integer" for what Lisp calls "bignums" -- integers that can
> grow without bound (except of course you can run out of memory,
> but that's true of Strings and whatnot, too. I'd call the integer type
> that is based on the hardware (e.g. 32-bit integers) "Machine_Integer".
> And I wouldn't put it in a package called "Standard" and I wouldn't
> make it automatically visible everywhere.
>
> I think one ought to be allowed to say:
>
> type T is range 1..10**100;
>
> Portably.

Now that is an interesting concept. I am fond of divorcing the language from
platform constrains when practical. There are, however, some practical
concerns about this proposal. An Ada 'bignum' type would undoubtedly be a
controlled type, introducing more overhead than one would expect in a scalar
type.

--
"All things extant in this world,
Gods of Heaven, gods of Earth,
Let everything be as it should be;
Thus shall it be!"
- Magical chant from "Magical Shopping Arcade Abenobashi"

"Drizzle, Drazzle, Drozzle, Drome,
Time for the this one to come home!"
- Mr. Lizard from "Tutor Turtle"


.



Relevant Pages

  • Re: char **argv & char *argv[]
    ... "pointer to pointer to char". ... >> pointer)) pointing to the first element of an array. ... so we have to start adding more context. ... type "pointer to char", rather than "array MISSING_SIZE of char". ...
    (comp.lang.c)
  • Re: Who owns the variable in my header file ?
    ... to check the subscripts to the array and trap on error conditions. ... cast one type of pointer into another; you wouldn't then be able to step ... language trying to be C like, ... One reason being that the programmer can possible ...
    (comp.lang.c)
  • Re: why cannot assign to function call
    ... hypothetical C-like languages, ... sizeof business would still indicate that a pointer was being passed. ... talk about variables of an array type. ... the earlier version of the standard didn't have numbered ...
    (comp.lang.python)
  • Re: multi dimensional arrays as one dimension array
    ... please - where does the standard say that such a conversion ... Pointer conversion yields a pointer to the same object as ... exist only where there are array declarations. ...
    (comp.lang.c)
  • Re: Pointer Equality for Different Array Objects
    ... Pointers to the same object are pointers to the same region of data storage. ... A pointer comaprison (for exact equality, ... we have the vague ("if the array is large enough"). ...
    (comp.lang.c)