comp.lang.ada
 help / color / mirror / Atom feed
From: Ole-Hjalmar Kristensen <ohk@clustra.com>
Subject: Re: Ada Idioms Progress Preview
Date: 13 Aug 2001 17:47:30 +0200
Date: 2001-08-13T17:47:30+02:00	[thread overview]
Message-ID: <umqr8ug55d9.fsf@maestro.clustra.com> (raw)
In-Reply-To: E8Rd7.282$D4.307@www.newsranger.com

Ted Dennison<dennison@telepath.com> writes:

> In article <3_Xc7.45$NM5.84779@news.pacbell.net>, Jay Nabonne says...
> >
> >useful for me - and it's what I thought of when I saw the word idiom - is
> >something that says "in order to do <blah>, given that there's more than one
> >way to do it within the Ada language, here's how you write code that looks
> >like an Ada programmer wrote it and doesn't look like a
> >C++-programmer-writing-Ada wrote it.".
> >
> >I'm interested in how to "think in Ada"...
> 
> The best advice I can give you today is to go to the Ada Source Code Treasury at
> http://www.adapower.com/adacode.html . The master site itself is useful too.
> 
> Based on my experience with native C speakers, here are some basic things to get
> you started:
> 
> o  Strings in Ada are *very* different from Strings in C. Ada strings end at the
> end of the array (or slice of it you specify), not at some arbitrarily-chosen
> "terminator" character. Look into the "&" operator for arrays, and the array
> attributes 'length, 'first, and 'last. 'image is damn nice too. Don't be
> discouraged if you have trouble with this seemingly simple thing. Conceptually,
> this is probably the biggest difference the languages have.

One thing which can be said in favour of having a terminator character
is that it frees you from having to store the length explicitly. The
length of a string is usually different from the size of the array
used to store the string.
So, in a sense a C string is more self-describing than a plain Ada
string. 
Of course, as soon as you call a procedure, you can use a slice, but
you still need the actual length to decide which slice.

On the balance, I would rather have Ada strings.

> 
> o  The techniques you learn for dealing with strings can be used for *all*
> arrays.
> 
> o  Make yourself familiar with the language defined attributes (
> http://www.ada-auth.org/~acats/arm-html/RM-K.html ).
> 
> o  Passing a large data structure as a parameter does *not* mean that the whole
> thing gets copied. The compiler will internally pass a reference to the
> structure if that would be more efficient. Do *not* use pointers yourself to
> force this effect.
> 
> o  You almost never need pointers.
> 
> o  If you think you need a pointer, see the previous point. :-)
> 
> ---
> T.E.D.    homepage   - http://www.telepath.com/dennison/Ted/TED.html
>           home email - mailto:dennison@telepath.com

-- 
Kabelsalat ist gesund.

Ole-Hj. Kristensen



  parent reply	other threads:[~2001-08-13 15:47 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-08-03  4:16 Ada Idioms Progress Preview James Rogers
2001-08-03 19:45 ` Robert Dewar
2001-08-03 22:02   ` James Rogers
2001-08-06 22:33   ` Stanley R. Allen
2001-08-07  2:45     ` tmoran
2001-08-07 12:15       ` Larry Kilgallen
2001-08-07 13:26         ` Philip Anderson
2001-08-08  2:23         ` Robert Dewar
2001-08-08  5:58           ` Ehud Lamm
2001-08-08  2:19       ` Robert Dewar
2001-08-08 15:13         ` Ted Dennison
2001-08-08 18:03           ` tmoran
2001-08-09 20:36           ` Florian Weimer
2001-08-10 21:02         ` Jay Nabonne
2001-08-10 21:51           ` Larry Kilgallen
2001-08-13 14:19             ` Ted Dennison
2001-08-13 14:05           ` Ted Dennison
2001-08-13 14:19             ` Marin David Condic
2001-08-13 15:47             ` Ole-Hjalmar Kristensen [this message]
2001-08-13 16:22               ` Marin David Condic
2001-08-13 18:48               ` Larry Kilgallen
2001-08-14  7:05                 ` Ole-Hjalmar Kristensen
2001-08-13 20:20               ` James Rogers
2001-08-14  1:09                 ` Warren W. Gay VE3WWG
2001-08-14  6:15                   ` James Rogers
2001-08-14 14:03                     ` Warren W. Gay VE3WWG
2001-08-21  5:54                   ` C strings, was " David Thompson
2001-08-16 18:42                 ` Jay Nabonne
2001-08-17  1:25                   ` Robert Dewar
2001-08-13 21:47               ` Ted Dennison
2001-08-14  7:37                 ` Ole-Hjalmar Kristensen
2001-08-14 14:59                   ` Ted Dennison
2001-08-14 13:22                 ` Marin David Condic
2001-08-14 15:12                   ` Ted Dennison
2001-08-14 15:33                     ` Marin David Condic
2001-08-14  8:49               ` Lutz Donnerhacke
2001-08-14  9:38                 ` Ole-Hjalmar Kristensen
2001-08-14  9:54                   ` Lutz Donnerhacke
2001-08-14 14:51                     ` James Rogers
2001-08-14 16:44                   ` Darren New
2001-08-14  1:39             ` Slicing ( Ada Idioms Progress Preview ) Warren W. Gay VE3WWG
replies disabled

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