[comp.lang.ada] irregularities regarding attributes

mfeldman@seas.gwu.edu (Michael Feldman) (06/15/90)

- We know that scalar types have lots of attributes, e.g.
   'first and 'last 

- We know that array types have attributes 'first and 'last as well.

In the case of the array type, if we have 
   type Vector is array (1..50) of float
   V: Vector ; 
then
   Vector'First, Vector'Last, V'First, V'last
are all permitted

but given a scalar type, say
   type Little is range -10..10;
   L : Little;

why are Little'First and Little'last defined, but not L'first and L'Last?

This is one of those maddening little irregularities for which there is
undoubtedly a rationale somewhere, but it's not obvious. Can someone
comment authoritatively? Thanks!
---------------------------------------------------------------------------
Prof. Michael Feldman
Department of Electrical Engineering and Computer Science
The George Washington University
Washington, DC 20052
+1-202-994-5253
mfeldman@seas.gwu.edu
---------------------------------------------------------------------------

stt@inmet.inmet.com (06/16/90)

Re: Irregularities.

Keep those cards and letters coming!  We are listening,
and do hope to iron out some of the simple irregularities in Ada9X.

One thing to keep in mind, for Ada83 as well as Ada9x, is
that designing a language (or revising it) is a mind-boggling
effort, with an extraordinary number of big and little
interactions to worry about.  There always comes a time in
the design process when you have to say enough is enough.

Of course, the next day, some smart aleck comes up with a brilliant
idea.  So you try to squeeze it in under the standardization wire,
and sure enough, the following year some other smart aleck
points out that that great idea you smuggled under the wire
is inconsistent with some other corner of the language.

And ta-dah, you have an irregularity!  So Ada9X will try
to iron out Ada83's irregularities, and Ada200X will iron
out those introduced by Ada9X.  

Programming languages, being
the reflection and product of a human activity, are inevitably
far from being jewels of perfection.  The more important
goal, of course, is utility and usability, and a few irregularities
here and there don't usually destroy the usefulness (they
just annoy the heck out of us purists!).

S. Tucker Taft
Intermetrics, Inc.
Cambridge, MA  02138