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/04
Date: 1999-02-04T00:00:00+00:00	[thread overview]
Message-ID: <u7lty3wpx.fsf@gsfc.nasa.gov> (raw)
In-Reply-To: Pine.BSF.4.05.9902031111160.29633-100000@shell5.ba.best.com

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.
> 
> If you do your homework, you'll find that completely independently of C++
> or the STL, Judy Bishop wrote a similar library for Ada 83 (trying to
> mimic CLU iterators), and it turns out to look remarkably similar to STL or 
> AGL. See
> 
> Bishop, J.M. et al. "The effect of data abstraction on loop
> programming techniques" IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
> April 1990. vol.16, no.4, p. 389-402 (Journal Paper - English)
> 
> (Note that some of Bishop's complaints about Ada no longer apply to Ada 95)
> 
> 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?

Perhaps it is the most general way to define an iterator that points
to nothing? 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?

-- Stephe




  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 ` Jeff Carter
1999-02-08  0:00   ` Michael F Brenner
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 [this message]
1999-02-04  0:00               ` Matthew Heaney
1999-02-04  0:00               ` Brian Rogoff
1999-02-05  0:00                 ` Stephen Leake
1999-02-05  0:00                   ` Brian Rogoff
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                 ` Brian Rogoff
1999-02-06  0:00                   ` Matthew Heaney
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           ` 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                     ` 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
     [not found]                     ` <79f24e$t14 <36BB4162.52FC6D9F@averstar.com>
1999-02-05  0:00                       ` dennison
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
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-05  0:00 ` Wanted: Ada STL. Reward: Ada's Future 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