comp.lang.ada
 help / color / mirror / Atom feed
From: dewar@merv.cs.nyu.edu (Robert Dewar)
Subject: Re: Question about base types
Date: 1997/02/08
Date: 1997-02-08T00:00:00+00:00	[thread overview]
Message-ID: <dewar.855461358@merv> (raw)
In-Reply-To: E4oE3q.1tq@world.std.com


Bob Duff said

"Good question.  This terminology is pretty messed up in Ada.  Ada 95
cleans it up a little bit, but it's still pretty awful.  Sigh."

I actually do not agree that Ada 95 cleans it up. Yes, I know the
terminology in Ada 95 is more consistent, but it is also more at
odds with normal usage. The use of subtype for what everyone thinks
of as a type causes all sorts of confusion. For example, in Ada 95,
Integer is a subtype, and so is Integer'Base.

Yes, it is true that Ada 83 was a little confused in this area, but the
terminology chosen in Ada 95 is fundamentally confusing, and in fact I
note a couple of error messages in GNAT that are absolutely correct
but which always cause people trouble:

   package x is .... -- oops forgot this hid "type" x 

      q : x;
          |
     Error: subtype name expected

Almost all programmers react to this message thinking, "why do I need a
subtype here, a type should be good enough"

The fact that

  type x is ...

introduces the subtype x is bound to be confusing.

Sometimes we just decide to use the obvious terminology in GNAT instead
of the technically correct termiology, and we probably should do that
here too -- the message "type name expected
would be much clearer in this instance.

For example

    subtype x is integer range 1 .. 10;
    for x'size use 5;

GNAT says "rep clause cannot be given for subtype"


which is I think clear to people (at least no one ever asked for an
explanation of this message).

More accurate would be to say

  "rep clause may only be given for first named subtype"

but this seems more confusing to us.

As Bob said, a bit of a mess, and as I say, in my opinion, definitely NOT
improved in Ada 95 -- I preferred the Ada 83 terminology here (actually
there are a number of instances where Ada 95 has changed Ada 83
terminology that I think are ill-advised and cause confusion, but this
is the most noticable of them).





  parent reply	other threads:[~1997-02-08  0:00 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-01-26  0:00 Question about base types Matthew Heaney
1997-01-27  0:00 ` Mats Weber
1997-01-28  0:00   ` Robert A Duff
1997-01-29  0:00   ` Robert Dewar
1997-01-27  0:00 ` Robert A Duff
1997-01-30  0:00   ` Matthew Heaney
1997-01-30  0:00     ` Matthew Heaney
1997-01-30  0:00     ` Robert Dewar
1997-01-30  0:00       ` Matthew Heaney
     [not found]     ` <EACHUS.97Feb3221558@spectre.mitre.org>
     [not found]       ` <dewar.855063927@merv>
     [not found]         ` <EACHUS.97Feb6145918@spectre.mitre.org>
     [not found]           ` <dewar.855276722@merv>
1997-02-07  0:00             ` Mats Weber
1997-02-08  0:00               ` Robert Dewar
1997-02-10  0:00                 ` Mats Weber
1997-02-11  0:00                   ` Robert Dewar
     [not found]         ` <32FB45D4.2160@watson.ibm.com>
1997-02-10  0:00           ` Robert Dewar
1997-02-08  0:00   ` Robert Dewar [this message]
1997-02-09  0:00     ` Matthew Heaney
1997-02-09  0:00       ` Robert Dewar
1997-02-09  0:00         ` Matthew Heaney
1997-02-10  0:00           ` Robert Dewar
1997-02-10  0:00       ` Larry Kilgallen
1997-02-11  0:00   ` Robert I. Eachus
1997-02-12  0:00     ` Robert Dewar
1997-01-28  0:00 ` Robert I. Eachus
1997-01-28  0:00   ` Mats Weber
1997-01-29  0:00 ` Robert I. Eachus
1997-01-30  0:00   ` Robert A Duff
replies disabled

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