From: "Jeff Carter" <jcgoogle@earthlink.net>
Subject: Re: Half Constrained Array Types and Slices
Date: 6 Mar 2006 09:50:16 -0800
Date: 2006-03-06T09:50:16-08:00 [thread overview]
Message-ID: <1141667416.163432.304280@p10g2000cwp.googlegroups.com> (raw)
In-Reply-To: <wccacc7hzah.fsf@shell01.TheWorld.com>
Robert A Duff wrote:
>
> I don't know of any change between 83 and 95, here.
> But I could be forgetting something; please remind me.
I just checked my copy of the green book, and you're right. I seem to
recall some problem with slices of constrained types in Ada 83, but I
guess I'm mistaken.
> I'd also be happy to eliminate slices as l-values. They cause a lot of
> implementation difficulty for not much benefit. Or else go the whole
> hog, and allow X(5..10) := "xx", which does not work in Ada, because
> that would require changing the length of the whole thing.
What would that do?
> Yes, but this is all very not-Ada in several ways.
> There are probably some semantic anomalies I have not considered.
Of course, it's not-Ada by definition. But it's fun to talk about.
I've been thinking about a language that allows null arrays, even for
degenerate types like
type Single is (One);
type Degenerate is array (Single range <>) of Whatever;
Suppose we could say something like
V : Degenerate (null range); -- V'Length = 0
Now we can do things like
for I in V'range loop -- loop is not entered
if X in V'range -- always False
Y : Degenerate (V'range); -- Y'Length = 0
More importantly, we do these kinds of things in subprograms with
Degenerate parameters.
If Degenerate is a string type, "" is meaningful.
We seem to be fine as long as we don't do V'Last. I can't figure out
how such a language should handle 'First and 'Last for such a
value/object. Probably a failure of imagination on my part.
--
Jeff Carter
jrcarter commercial-at acm [period | full stop] org
next prev parent reply other threads:[~2006-03-06 17:50 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-02 5:00 Half Constrained Array Types and Slices Jeffrey R. Carter
2006-03-02 8:34 ` Dmitry A. Kazakov
2006-03-02 15:34 ` Georg Bauhaus
2006-03-02 19:37 ` Dmitry A. Kazakov
2006-03-02 20:06 ` Jeffrey R. Carter
2006-03-02 20:37 ` Dmitry A. Kazakov
2006-03-02 21:01 ` Robert A Duff
2006-03-02 20:40 ` Robert A Duff
2006-03-02 14:32 ` Larry Kilgallen
2006-03-02 20:08 ` Jeffrey R. Carter
2006-03-02 20:48 ` Robert A Duff
2006-03-06 2:16 ` Larry Kilgallen
2006-03-06 18:50 ` Martin Krischik
2006-03-02 20:38 ` Robert A Duff
2006-03-03 5:15 ` Jeffrey R. Carter
2006-03-03 8:57 ` Dmitry A. Kazakov
2006-03-03 23:41 ` Robert A Duff
2006-03-06 17:50 ` Jeff Carter [this message]
2006-03-06 18:31 ` Dmitry A. Kazakov
2006-03-07 19:02 ` Jeff Carter
2006-03-08 14:29 ` Dmitry A. Kazakov
2006-03-09 22:44 ` Robert A Duff
2006-03-10 8:46 ` Dmitry A. Kazakov
2006-03-06 19:49 ` Stefan Lucks
2006-03-08 17:36 ` brian.b.mcguinness
2006-03-08 17:56 ` Jeff Carter
2006-03-09 22:36 ` Robert A Duff
2006-03-10 4:28 ` Jeffrey R. Carter
2006-03-10 8:46 ` Dmitry A. Kazakov
2006-03-10 17:33 ` Robert A Duff
2006-03-10 21:24 ` Dmitry A. Kazakov
2006-03-10 17:38 ` Robert A Duff
2006-03-11 0:19 ` Randy Brukardt
2006-03-11 1:43 ` Jeffrey R. Carter
2006-03-11 8:38 ` Niklas Holsti
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox