comp.lang.ada
 help / color / mirror / Atom feed
From: dennison@telepath.com (Ted Dennison)
Subject: Re: FAQ and string functions
Date: 1 Aug 2002 07:29:33 -0700
Date: 2002-08-01T14:29:33+00:00	[thread overview]
Message-ID: <4519e058.0208010629.5e6182ca@posting.google.com> (raw)
In-Reply-To: 20020731104643.C1083@videoproject.kiev.ua

Oleg Goodyckov <og@videoproject.kiev.ua> wrote in message news:<20020731104643.C1083@videoproject.kiev.ua>...
> 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?

That's odd. All you'd really have to do to do this in Ada would be:
1) Read file into a string
2) Call Ada.Strings.Fixed.Count on the string

Doing 1 could be tricky, if you have no idea how big the file is. But
there are techniques for dealing with that. My personal favorite is
the recursive growing string trick. That only takes about 5 lines of
code. You could also use Ada.Streams.Stream_IO to open and find the
length of the file and String'Read to read it all into one perfectly
sized string.

Doing 2 is a one-liner.

> 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

Well, it should be hardly shocking that the "standard" Perl has more
string handling goodies than the standard Ada. Perl was made for
string handling. If it can't even beat a compiled general-purpose
programming language like Ada in this reguard, it should give up its
scripting credentials and go run security in airports or something.

However, you are right that much of this *can* be done in Ada. If you
want more powerful string parsing capabilities, there are lots of
options for you.

One good one (which I see has already been mentioned) is the Gnat
string handling packages. They provide very powerful pattern matching
capability, which is probably the style of working you are used to if
you are a Perl user. The main drawback to this is that it isn't
avilable to you if you are using a compiler other than Gnat (iow: it's
not compiler-portable).

Another, even more powerful option, if you need something really
sophisiticated, is the OpenToken packages
(http://www.telepath.com/~dennison/Ted/OpenToken/OpenToken.html ).
They are written in standard Ada, and should be portable to any
compiler (although there have been minor issues in the past).

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

Well, we are currently looking at beefing up the standard library for
the next version of the language. Perhaps you are saying you believe
string handling needs attention?


-- 
T.E.D.
Home     -  mailto:dennison@telepath.com (Yahoo: Ted_Dennison)
Homepage -  http://www.telepath.com/~dennison/Ted/TED.html



  parent reply	other threads:[~2002-08-01 14:29 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 [this message]
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