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

Brian Rogoff <bpr@shell5.ba.best.com> writes:

> 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?

Ok, I agree, you've come up with a good abstraction, where you can't
tell / don't care what the implementation is. That's what I was
looking for.

Still, there is a distinction between "Last" and "Finish". In Ada,
indexing an array with Last gives a valid data element. In C++ STL,
dereferencing a "Finish" iterator does _not_ give a vaid data pointer.
That is the essential difference in style.

Let me ask my question this way. Define an iterator value "Last" that
represents the last valid data element in a container. Define an
iterator value "Finish" that represents no valid data element in a
container. Also define Prev (Finish) == Last.

1) Are there algorithms that can be expressed in terms of Finish that
   cannot be expressed in terms of Last?

2) Do we also need Begin and First? or just First?

Hmm, I think I'm implying an ordered container here. Do the answers
change for unordered containers?

-- Stephe




  reply	other threads:[~1999-02-05  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 ` 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               ` Brian Rogoff
1999-02-05  0:00                 ` Stephen Leake [this message]
1999-02-05  0:00                   ` Brian Rogoff
1999-02-04  0:00               ` Matthew Heaney
1999-02-04  0:00               ` Hyman Rosen
1999-02-05  0:00                 ` Stephen Leake
1999-02-05  0:00                   ` Hyman Rosen
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           ` 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-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                     ` 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                                     ` dennison
1999-02-09  0:00                                       ` Corey Minyard
1999-02-09  0:00                                     ` robert_dewar
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
1999-02-05  0:00                     ` Larry Kilgallen
     [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                     ` dennison
1999-02-05  0:00                       ` robert_dewar
1999-02-05  0:00                         ` dennison
1999-02-06  0:00                       ` Nick Roberts
1999-02-05  0:00                     ` Tucker Taft
     [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           ` Al Christians
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           ` Nick Roberts
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           ` Robert A Duff
1999-02-03  0:00       ` robert_dewar
1999-02-01  0:00 ` Wanted: Ada STL. Reward: Ada's Future 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 ` 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