comp.lang.ada
 help / color / mirror / Atom feed
From: Oleg Goodyckov <og@videoproject.kiev.ua>
Subject: Re: FAQ and string functions
Date: Wed, 31 Jul 2002 10:46:43 +0300
Date: 2002-07-31T10:46:43+03:00	[thread overview]
Message-ID: <20020731104643.C1083@videoproject.kiev.ua> (raw)
In-Reply-To: 4519e058.0207300548.15eeb65c@posting.google.com

On Tue, Jul 30, 2002 at 06:48:43AM -0700, Ted Dennison wrote:
> There is all sorts of stuff like that in the Ada.Strings.* packages.
> See section A.4 of the online LRM at
> http://adaic.org/standards/95lrm/html/RM-TOC.html . More generally,
> read *everything* in Annexes A and K before asking any more "does Ada
> have XYZ?" questions.

I've read it before asked. Moreover, I've asked because read it.

> Strings in Ada are particularly tricky for newcommers. One trap is
> underuse of perfectly sized string constants. Most strings get their
> value once and never need it changed. If that is the case, its fairly
> easy to declare the string at the point its value is known, with the
> perfect bounds, by using a string constant (possibly inside a
> "declare" block). If you do that, it becomes very easy to deal with.

Thanks a lot. But it is not my case.

> Also, note that a lot of string handling stuff that requires routines
> in other languages is trivial in Ada. For instance, you can take a
> slice of any array (including strings) with something like
> "Array_Name(5..8)". Any two arrays of the same type (including
> strings) can be concatenated with "&". Most numeric types (and
> enumerations) can be converted to strings with the 'image attribute.

All of that I know. And all of that is very inconvinience to handle of
strings. In Booch components set in demo files is present file
bcwords.ada. Look at it. It contains full program for counting and
printing of frequencies of words met in any given text file. But this file
- bcwords.ada - begins from 15-line Perl's program, which does the same
work. Look there, compare volumes of Perl's and Ada's programs, and think,
why difference is so dramatically big in favor of Perl?

If we look at that Ada program carefully, we'll see, that half of it takes
subprogram Get_Next_Word. What it does? It's clear from name - it parses
next word from line. How it is done in Perl program? Simple - by splitting
of line on words by space as delimiter. So, while on Ada we must make
slice, "Array_Name(5..8)", loop, if, and other very important stuff, in
Perl we say @list=split(/ /,String) and that's all.  Is this Perl's own
especiality? No. It can be realized in Ada. And I say more - without this
Ada will never be convinient language. While for splitting string like
"x=2*3" people will must be to write program enstead split("=","x=2*3"),
people will write in Perl, not Ada.

So, by all of diversity of GENERIC string's handling tools in Ada,
convinient tool is not present. 



  parent reply	other threads:[~2002-07-31  7:46 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 [this message]
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
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