comp.lang.ada
 help / color / mirror / Atom feed
From: Darren New <dnew@san.rr.com>
Subject: Re: FAQ and string functions
Date: Sun, 04 Aug 2002 16:23:35 GMT
Date: 2002-08-04T16:23:35+00:00	[thread overview]
Message-ID: <3D4D551F.190A19C0@san.rr.com> (raw)
In-Reply-To: 3D4C7DE5.9060408@telepath.com

Ted Dennison wrote:
> 
> Darren New wrote:
> > In the sense that it was the OP's original question. Surely you can't mean
> > "don't ask that question."
> 
> No. The OP asked about general string processing routines in Ada,

Yes. But I believe I understood what he was asking better than the Ada
folks. He was asking about the string parsing routines, but the *reason*
they're different in Ada is a lack of a general variable-sized array. 

> If the question is, "In general, how am I
> supposed to deal with strings in Ada", then the answer is unfortunately
> rather long.

Perhaps I was reading more into it, but I believe thats what he was asking.
As one poster said, "surely the lack of this one routine is not the
problem."

> Lisp folks had dicussions very much like the one we're having now,
> before they broke down and added procedural looping constructs to the
> language. :-)

Yep. That's my point. :-) LISP certainly isn't what I'd call a powerhouse of
popularity even *with* the procedural constructs. The answer of "change how
you do things to fit our compiler" isn't a good answer, is all I'm trying to
say.

> That would be completely unsafe, unless you lock the data structure
> somehow.

Actually, I meant to say "concurrently" rather than "coherently". It has
nothing to do with tasks. You can be doing several different tasks (in the
sense of "things to do" rather than "concurrent program counters with
independent stacks") at the same time without using Ada tasks. You can (for
example) be reading input, parsing it, generating a parse tree, generating
code off the parse tree, doing optimization, and writing out object code
concurrently, without using tasks. 

It has to do with the fact that it's an inherently iterative process, not a
recursive one. I don't think you want to recurse a million times to read a
million lines of text from the terminal. I really suspect you don't want 1.5
million lines of text on the stack, either.

If you're building up one array, it's conceivable you could do it
recursively. 

> > on the lines of text, if you're filling in the array based on the processing
> > of a state machine (like a parser), etc etc. I.e., if you have something
> > that's difficult to program in a functional style.
> 
> I think you mean a lexical analyzer, not a parser. Lexical analyzers are
> usually some kind of state machine (unless they are very simple).

A lexical analyzer is a simple parser. (I'm a bit of a formalist, ya see, so
I tend to mean the technical definitions when I use the technical words.)

> However, its usually a lot quicker to just work out of a big buffer, and
> use indices to designate tokens within the buffer. That way you aren't
> copying strings around until you need to.

That's a good point, and something that's hard to do in many other
languages. However, it's really not enough. For example, implement the
Ada.Strings.Unbounded package using only recursion to allocate record sizes.
I haven't tried, but I don't think it would be easy, even if possible.
 
> But Ada programmers should teach themselves to work with perfectly sized
> constant strings where feasable, as that's the language's native idiom.

Agreed. And it's easier to do in Ada than it is in C. But that doesn't make
Ada a good string-processing language compared to something like Perl or
Tcl. :-) It's clearly a difficult idiom, given the number of newbie
questions about how to do it I see here. Once you're used to doing it that
way, yes, it can be done that way. I'm not disputing that.

Anyway, this horse is a greasy spot on the sidewalk. You can have the last
word. :-)

-- 
Darren New 
San Diego, CA, USA (PST). Cryptokeys on demand.
   ** http://images.fbrtech.com/dnew/ **

They looked up at me like I was a T-bone steak
  walking into an all-you-can-eat seafood buffet.



  reply	other threads:[~2002-08-04 16:23 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-07-30  6:32 FAQ and string functions Oleg Goodyckov
2002-07-30  8:52 ` Colin Paul Gloster
2002-07-30 13:48 ` Ted Dennison
2002-07-31  4:52   ` Brian May
2002-08-01 16:09     ` Ted Dennison
2002-08-02  0:21       ` Brian May
2002-08-02  1:56         ` tmoran
2002-08-02 13:59         ` Ted Dennison
2002-07-31  7:46   ` Oleg Goodyckov
2002-07-31  9:04     ` Lutz Donnerhacke
2002-07-31  9:39       ` Pascal Obry
2002-07-31 15:06         ` Oleg Goodyckov
2002-07-31 16:50       ` Oleg Goodyckov
2002-07-31 20:16     ` Simon Wright
2002-07-31 20:56       ` Robert A Duff
2002-08-01  0:11         ` Darren New
2002-08-01  1:08           ` tmoran
2002-08-01  9:25           ` Brian May
2002-08-01 11:20           ` Oleg Goodyckov
2002-08-01 15:43             ` Darren New
2002-08-01 21:37               ` Robert A Duff
2002-08-03  0:42                 ` Ted Dennison
2002-08-03 13:51                   ` Robert A Duff
2002-08-03 16:43                   ` Darren New
2002-08-05 13:37                   ` Stephen Leake
2002-08-02  8:01               ` Oleg Goodyckov
2002-08-02 16:09                 ` Darren New
2002-08-01 11:09         ` Oleg Goodyckov
2002-08-01 14:08           ` Frank J. Lhota
2002-08-01 15:06             ` Robert A Duff
2002-08-01 16:05             ` Oleg Goodyckov
2002-08-01 14:57         ` Georg Bauhaus
2002-07-31 22:04     ` Dmitry A.Kazakov
2002-07-31 15:23       ` Oleg Goodyckov
2002-08-01 21:57         ` Dmitry A.Kazakov
2002-08-01 13:10           ` Oleg Goodyckov
2002-08-02 23:29             ` Dmitry A.Kazakov
2002-08-02 16:35               ` Oleg Goodyckov
2002-08-05 11:50                 ` Dmitry A. Kazakov
2002-08-05 14:29                   ` Larry Kilgallen
2002-08-05 14:57                     ` Dmitry A. Kazakov
2002-08-05 15:12                   ` Oleg Goodyckov
2002-08-05 16:20                   ` Darren New
2002-08-05 17:01                     ` Georg Bauhaus
2002-08-05 17:48                       ` Darren New
2002-08-05 19:06                         ` tmoran
2002-08-05 20:08                           ` Darren New
     [not found]                     ` <slrnakv3q9.p2.lutz@taranis.iks-jena.de>
     [not found]                       ` <3D4FEFCB.3B74F5E5@san.rr.com>
2002-08-14  0:07                         ` Randy Brukardt
2002-08-01 14:29     ` Ted Dennison
2002-08-01 16:47       ` Oleg Goodyckov
2002-08-02 14:05         ` Ted Dennison
2002-08-02 16:11           ` Darren New
2002-08-03  0:30             ` Ted Dennison
2002-08-03  0:58               ` Darren New
2002-08-03  2:04                 ` Dale Stanbrough
2002-08-03  2:32                 ` Ted Dennison
2002-08-03  2:47                   ` Darren New
2002-08-03 12:41                     ` Ted Dennison
2002-08-03 16:53                       ` Darren New
2002-08-04  1:08                         ` Ted Dennison
2002-08-04 16:23                           ` Darren New [this message]
2002-08-05  2:16                             ` Robert Dewar
2002-08-05  3:45                               ` Darren New
2002-08-05  9:56                     ` Lutz Donnerhacke
2002-08-05 16:02                       ` Darren New
2002-08-14  0:42                         ` Randy Brukardt
2002-08-14  1:45                           ` Darren New
2002-08-14 19:37                             ` Randy Brukardt
2002-08-14 20:25                               ` Stephen Leake
2002-08-14 20:22                           ` Stephen Leake
2002-08-15 19:24                             ` Randy Brukardt
     [not found]                         ` <jb1vkustkugeutalhvrhv1n0k9hqn2fpip@4ax.com>
     [not found]                           ` <3D4FF351.8F4A6C0A@san.rr.com>
2002-08-14  1:03                             ` Randy Brukardt
2002-08-14  1:05                       ` Robert A Duff
     [not found]                       ` <3D4EA1AC.80D17170@s <wccofc6b66u.fsf@shell01.TheWorld.com>
2002-08-14 20:29                         ` Stephen Leake
2002-08-26 17:53                           ` Robert A Duff
2002-08-26 18:40                             ` Chad R. Meiners
2002-08-26 18:52                               ` Robert A Duff
2002-08-26 21:46                                 ` Chad R. Meiners
2002-08-05 13:29                     ` Stephen Leake
2002-08-03  5:07                   ` achrist
2002-08-03 12:52                     ` Ted Dennison
2002-08-05 15:34                       ` Ted Dennison
2002-08-05 13:24                 ` Stephen Leake
2002-08-05 16:02                   ` Darren New
2002-08-05  7:18           ` Oleg Goodyckov
2002-08-02  1:04     ` tmoran
replies disabled

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