From: "Marin David Condic" <dont.bother.mcondic.auntie.spam@[acm.org>
Subject: Re: Ada Idioms Progress Preview
Date: Mon, 13 Aug 2001 10:19:54 -0400
Date: 2001-08-13T14:19:56+00:00 [thread overview]
Message-ID: <9l8nmc$89m$1@nh.pace.co.uk> (raw)
In-Reply-To: E8Rd7.282$D4.307@www.newsranger.com
I'd have to agree. Maybe we ought to have something in the AdaPower FAQ on
this. My experience has indicated that the most frequently messed up things
by C/C++ programmers using Ada are:
1) Improper handling of strings because of dissimilar language models &
trying to force Ada strings to look like C strings.
2) Improper passing of parameters because of C's historic lack of
pass-by-reference & all the history that goes with this.
3) Pointers to every blankety-blank thing on the whole blankety-blank planet
because in C/C++ you have to do it this way.
4) Improper use of 'Address - usually related to some version of #3 above.
But, then again, I still think the three most frequently sung songs are
"Happy Birthday To You", "Auld Lang Syne" and "Inna Godda Davida" :-)
MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas www.pacemicro.com
Enabling the digital revolution
e-Mail: marin.condic@pacemicro.com
Web: http://www.mcondic.com/
"Ted Dennison" <dennison@telepath.com> wrote in message
news:E8Rd7.282$D4.307@www.newsranger.com...
> 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.
>
> 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
next prev parent reply other threads:[~2001-08-13 14:19 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 [this message]
2001-08-13 15:47 ` Ole-Hjalmar Kristensen
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