comp.lang.ada
 help / color / mirror / Atom feed
From: Brian Rogoff <bpr@shell5.ba.best.com>
Subject: Re: Wanted: Ada STL.  Reward: Ada's Future
Date: 1999/02/04
Date: 1999-02-04T00:00:00+00:00	[thread overview]
Message-ID: <Pine.BSF.4.05.9902041013030.19316-100000@shell5.ba.best.com> (raw)
In-Reply-To: u7lty3wpx.fsf@gsfc.nasa.gov

On 4 Feb 1999, Stephen Leake wrote:
> Brian Rogoff <bpr@shell5.ba.best.com> writes:
> > On Wed, 3 Feb 1999, Matthew Heaney wrote:
> > > ... snip ...
> > > 
> > >   for Index in Map'Range loop
> > > 
> > >     <do something with Map (Index)>
> > > 
> > >   end loop;
> > > 
> > > If this looks simpler than my earlier formulation, that's because it's
> > > simpler.  Loop iteration in Ada is less error prone than in C.
> > > 
> > > This is yet another reason why I think that looking at the STL as a
> > > model for a standard Ada library is dangerous and misleading.
> > 
> > Indeed. Just look at how incomprehensible AGL looping looks
> > 
> >     Os := Copy(Start(Deque'Access), Finish(Deque'Access), Os);
> > 
> > 	or
> > 
> >     Pos := Find(Start(IVec'Access), Finish(IVec'Access), 42);
> > 
> > The horror, the horror ...
> >  
> > > The idioms in both languages are completely different.  So forget about
> > > the STL as a model for an Ada library.
... snip ...
> > 
> > So far, you've said nothing that indicates that you've looked seriously at 
> > the STL. Why don't you just get very specific and say exactly why you
> > think it is a bad model for an Ada library, using examples? I think the
> > idea of writing algorithms over collections in terms of their iterators is
> > a good one. 
> 
> I thought Matthew just did that, but you haven't answered the question
> "why does the STL allow iteration past the end of the array". This
> bugs me too. Is there a real reason here, or is it an accident of the
> implementation?

How do you even know that it points past the end of the array, in an Ada 
implementation? We have a constructor for an iterator called "Last" or 
"Finish" or whatever. Should it matter how Finish is implemented?

> Perhaps it is the most general way to define an iterator that points
> to nothing? 

It is *a* way to define a stopping condition or sentinel value. In the
case of a red-black tree, the null pointer is a sentinel. In the case of
an array, whose iterator conceptually looks like a pointer-offset pair, 
an offset one greater than the highest index of the array makes a fine
sentinel, and it just so happens that in C++ you can use this easily. 

> Certainly if the underlying implementation of a collection
> is an array, this makes sense. But if the underlying implementation is
> a list, then a null pointer makes more sense. Why not make the
> abstraction resemble a null pointer, rather than an out-of-bounds
> index?

In what way does the value of Finish not resemble a null pointer,indeed,
when iterating over a list and checking for nullness of a pointer, in what
way does that not resemble checking for an out of bounds index?

-- Brian






  parent reply	other threads:[~1999-02-04  0:00 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-01-31  0:00 Wanted: Ada STL. Reward: Ada's Future Alexy V Khrabrov
1999-01-31  0:00 ` Simon Wright
1999-02-01  0:00 ` Stanley R. Allen
1999-02-01  0:00 ` Jerry van Dijk
1999-02-01  0:00   ` Marin David Condic
1999-02-01  0:00 ` dennison
1999-02-01  0:00 ` Matthew Heaney
1999-02-01  0:00   ` Alexy V Khrabrov
1999-02-01  0:00     ` Matthew Heaney
1999-02-01  0:00       ` Jeff Carter
1999-02-01  0:00 ` Brian Rogoff
1999-02-01  0:00   ` Ehud Lamm
1999-02-02  0:00     ` Richard D Riehle
1999-02-03  0:00       ` robert_dewar
1999-02-02  0:00     ` Brian Rogoff
1999-02-02  0:00       ` robert_dewar
1999-02-04  0:00         ` Ehud Lamm
1999-02-03  0:00       ` John English
1999-02-03  0:00         ` Matthew Heaney
1999-02-03  0:00           ` Brian Rogoff
1999-02-04  0:00             ` Stephen Leake
1999-02-04  0:00               ` Hyman Rosen
1999-02-05  0:00                 ` Stephen Leake
1999-02-05  0:00                   ` Hyman Rosen
1999-02-04  0:00               ` Matthew Heaney
1999-02-04  0:00               ` Brian Rogoff [this message]
1999-02-05  0:00                 ` Stephen Leake
1999-02-05  0:00                   ` Brian Rogoff
1999-02-05  0:00               ` John English
1999-02-05  0:00                 ` Tucker Taft
1999-02-05  0:00                   ` Brian Rogoff
1999-02-05  0:00                   ` Richard D Riehle
1999-02-05  0:00                 ` Brian Rogoff
1999-02-06  0:00                   ` Matthew Heaney
1999-02-05  0:00           ` Nick Roberts
1999-02-05  0:00           ` John English
1999-02-04  0:00         ` Ehud Lamm
1999-02-04  0:00           ` Al Christians
1999-02-04  0:00           ` Pat Rogers
1999-02-04  0:00             ` Larry Kilgallen
1999-02-04  0:00               ` Pat Rogers
1999-02-04  0:00                 ` Larry Kilgallen
1999-02-05  0:00                   ` robert_dewar
1999-02-05  0:00                     ` Larry Kilgallen
1999-02-05  0:00                     ` Tom Moran
1999-02-05  0:00                       ` dewar
1999-02-05  0:00                         ` Tom Moran
1999-02-05  0:00                           ` dewar
1999-02-05  0:00                             ` dennison
1999-02-06  0:00                               ` dewar
1999-02-08  0:00                                 ` dennison
1999-02-08  0:00                                   ` robert_dewar
1999-02-08  0:00                                     ` dennison
1999-02-09  0:00                                       ` robert_dewar
1999-02-09  0:00                                         ` dennison
1999-02-09  0:00                                     ` Nick Roberts
1999-02-07  0:00                               ` Simon Wright
1999-02-08  0:00                               ` Corey Minyard
1999-02-08  0:00                                 ` Open Source Licensing (was: Wanted: Ada STL. Reward: Ada's Future) dennison
1999-02-08  0:00                                   ` Corey Minyard
1999-02-09  0:00                                     ` robert_dewar
1999-02-09  0:00                                       ` Corey Minyard
1999-02-09  0:00                                     ` dennison
1999-02-09  0:00                                       ` Corey Minyard
1999-02-09  0:00                                 ` Wanted: Ada STL. Reward: Ada's Future robert_dewar
1999-02-09  0:00                                   ` dennison
1999-02-10  0:00                                     ` robert_dewar
1999-02-07  0:00                           ` Simon Wright
     [not found]                     ` <36ba730b.35540068@ <79fmg1$fn0$1@nnrp1.dejanews.com>
1999-02-06  0:00                       ` Larry Kilgallen
1999-02-05  0:00                 ` robert_dewar
1999-02-05  0:00               ` robert_dewar
1999-02-05  0:00                 ` Larry Kilgallen
1999-02-05  0:00                   ` robert_dewar
1999-02-05  0:00                     ` Tucker Taft
1999-02-05  0:00                     ` dennison
1999-02-05  0:00                       ` robert_dewar
1999-02-05  0:00                         ` dennison
1999-02-06  0:00                       ` Nick Roberts
     [not found]                     ` <79f24e$t14 <36BB4162.52FC6D9F@averstar.com>
1999-02-05  0:00                       ` robert_dewar
1999-02-05  0:00                       ` dennison
1999-02-04  0:00           ` Brian Rogoff
1999-02-05  0:00             ` Matthew Heaney
1999-02-05  0:00               ` Brian Rogoff
1999-02-08  0:00                 ` John English
1999-02-05  0:00           ` John English
1999-02-09  0:00             ` micro_ada
1999-02-05  0:00         ` Nick Roberts
1999-02-08  0:00           ` John English
1999-02-02  0:00     ` Pointer Arithmetic (was: Wanted: Ada STL....) adam
1999-02-02  0:00       ` William Clodius
1999-02-03  0:00         ` adam
1999-02-03  0:00           ` robert_dewar
1999-02-03  0:00             ` Jean-Pierre Rosen
1999-02-03  0:00           ` William Clodius
1999-02-03  0:00           ` Nick Roberts
1999-02-03  0:00       ` robert_dewar
1999-02-03  0:00       ` Nick Roberts
1999-02-03  0:00         ` robert_dewar
1999-02-03  0:00           ` Robert A Duff
1999-02-01  0:00 ` Wanted: Ada STL. Reward: Ada's Future Jeff Carter
1999-02-08  0:00   ` Michael F Brenner
1999-02-05  0:00 ` Corey Minyard
replies disabled

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