comp.lang.ada
 help / color / mirror / Atom feed
From: Niklas Holsti <niklas.holsti@tidorum.invalid>
Subject: Re: Inferring array index type from array object
Date: Wed, 23 Jun 2010 23:39:56 +0300
Date: 2010-06-23T23:39:56+03:00	[thread overview]
Message-ID: <88f9osFmcmU1@mid.individual.net> (raw)
In-Reply-To: <Xns9DA07FC9F98B5WarrensBlatherings@81.169.183.62>

Warren wrote:
> Niklas Holsti expounded in news:88ec2vF3uqU1@mid.individual.net:
>> Dmitry A. Kazakov wrote:
>>> On Wed, 23 Jun 2010 00:30:23 -0700 (PDT), Maciej Sobczak wrote:
> ..
>>>> 2. Is it possible to declare the index variable without hardcoding
>>>> the index type (that is, to infer it from the array object)?
>>> No, without improving the type system. E.g. introducing abstract
>>> index types, and abstract range types (or more general sets of index
>>> types), and abstract composite types like arrays.
>> I don't think such large language changes would be necessary. The 
>> expression S'Range gives the compiler all the information about the
>> type and its constraints, so I see no reason why Ada could not be
>> extended simply to allow S'Range in a variable declaration, as in the
>> above quoted "I : S'Range". The declared variable "I" would have the
>> same (sub)type as the loop counter in "for I in S'Range loop ...".
> 
> I think most would agree that this is a "convenience" feature.

Yes, but in other contexts, when we advocate Ada, we often make a big 
point of the "convenience" of the 'Range attribute for arrays, such as 
"No need to pass extra parameters for array index bounds, just use 
'Range". The suggestion to let variables be declared by the "type" 
S'Range (or, if desired, a new attribute S'Index_Type) has a similar 
advantage (but a weaker one, I admit).

> I think the language (and its compiler) is probably complicated
> enough for these types of additions. Don't forget each new feature
> requires a "test suite" and validation, in addition to the 
> compiler itself.

Yes, of course. But as time goes on, and as long as the extensions are 
backwards compatible, I think the compiler writers and validators could 
live with a growing test and validation suite. But then I am not one of 
those guys...

On the other hand, I do worry about language and compiler complexity. If 
the creation and maintenance of Ada compilers is very costly and 
difficult, it creates a risk for the survival of Ada, as well as a brake 
on the evolution of Ada. When we talk about "the Ada way", it seems to 
me that we have in mind a simpler and more elegant and uniform thing 
than the current Ada language -- some "core of Ada" that perhaps could 
be defined and implemented in an easier way. I suspect that Dmitry has 
the same feeling, which is why he keeps suggesting (or dreaming about) 
such large and fundamental changes to Ada.

-- 
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
       .      @       .



  parent reply	other threads:[~2010-06-23 20:39 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-23  7:30 Inferring array index type from array object Maciej Sobczak
2010-06-23  8:01 ` Dmitry A. Kazakov
2010-06-23  9:03   ` J-P. Rosen
2010-06-23 12:24     ` Georg Bauhaus
2010-06-23 12:52       ` J-P. Rosen
2010-06-23 19:09         ` Simon Wright
2010-06-24  7:25           ` Georg Bauhaus
2010-06-23 14:38     ` Robert A Duff
2010-06-23 15:17       ` J-P. Rosen
2010-06-23 17:17         ` Robert A Duff
2010-06-24  6:16           ` J-P. Rosen
2010-06-23 12:13   ` Niklas Holsti
2010-06-23 14:27     ` Peter C. Chapin
2010-06-23 20:24       ` Niklas Holsti
2010-06-23 16:33     ` Warren
2010-06-23 17:49       ` Dmitry A. Kazakov
2010-06-23 18:45         ` Warren
2010-06-23 20:39       ` Niklas Holsti [this message]
2010-06-28 13:44         ` Warren
2010-06-28 22:18           ` Niklas Holsti
2010-06-29  1:49             ` Adam Beneschan
2010-06-29  2:10               ` (see below)
2010-06-29 16:56             ` Warren
2010-06-29 17:50               ` John B. Matthews
2010-06-29 19:31                 ` Warren
2010-06-29 20:06                   ` Jeffrey R. Carter
2010-06-29 20:16                     ` Warren
2010-06-29 20:22                   ` Adam Beneschan
2010-06-29 20:39                     ` Dmitry A. Kazakov
2010-06-29 20:55                     ` Warren
2010-06-29 21:00                       ` Warren
2010-06-29 21:47                         ` John B. Matthews
2010-06-29 21:52                         ` Damien Carbonne
2010-06-29 22:22                         ` Adam Beneschan
2010-06-30 16:43                           ` Warren
2010-06-29 21:18                       ` Jeffrey R. Carter
2010-06-30  5:01                     ` Simon Wright
2010-06-30 14:29                       ` Adam Beneschan
2010-06-29 20:28                   ` Damien Carbonne
2010-06-29 21:20                   ` John B. Matthews
2010-06-23 13:12 ` Gautier write-only
replies disabled

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