From: ncohen@watson.ibm.com (Norman H. Cohen)
Subject: Re: Side-effect arithmetic again [was: Ada ... in embedded systems]
Date: 1996/03/25
Date: 1996-03-25T00:00:00+00:00 [thread overview]
Message-ID: <4j6d12$lbn@watnews1.watson.ibm.com> (raw)
In-Reply-To: Dot06M.Asu.0.-s@inmet.camb.inmet.com
In article <Dot06M.Asu.0.-s@inmet.camb.inmet.com>,
stt@henning.camb.inmet.com (Tucker Taft) writes:
|> As a small anecdote here relating to the "op=" operations of C,
|> my most recent "favorite" bug in C code I was writing was in the following:
|>
|> if (a /= b) {
|> ...
|> }
|>
|> The GCC compiler nicely warns you if you write "if (a = b) {" and
|> suggests an extra level of parentheses to emphasize that you really
|> want an assignment, not an equality, operator. Unfortunately, it
|> isn't so helpful with the "op=" operators, and presumes that if
|> you use one of those, you know what you are doing. Alas, after
|> writing a lot of Ada, I didn't in this case. Of course what I meant
|> was "if (a != b) {". Instead, I divided A by B, and tested the result
|> for non-zero-ness. Groink!
Yes, I've done the same thing. It's one of a group of C pitfalls to
which Ada programmers are especially susceptible. Another is to leave
the empty parentheses off a parameterless function call in a context
in which C is willing to accept a pointer-valued expression. There are
far too many such contexts. When I wrote
if ( some_predicate ) {
...
}
instead of
if ( some_predicate() ) {
...
}
C obediently coerced some_predicate to a pointer to the function and
tested whether that pointer was null. As Tuck so eloquently put it,
Groink!
|> At this point Dave Emery comes on and asks me why in the world
|> I am writing any code in C... ;-}
So we don't start to take Ada for granted, of course. ;-)
--
Norman H. Cohen ncohen@watson.ibm.com
next prev parent reply other threads:[~1996-03-25 0:00 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <823906039.22113@assen.demon.co.uk>
[not found] ` <4fgrq3$mc4@qualcomm.com>
[not found] ` <dewar.823962356@schonberg>
1996-02-17 0:00 ` Ada is almost useless in embedded systems Tore Joergensen
1996-02-17 0:00 ` Robert Dewar
1996-02-19 0:00 ` Keith Thompson
1996-02-19 0:00 ` John McCabe
1996-02-21 0:00 ` Richard A. O'Keefe
1996-02-21 0:00 ` Norman H. Cohen
[not found] ` <824056183.18993@assen.demon.co.uk>
[not found] ` <311E924E.74CE@escmail.orl.mmc.com>
1996-02-17 0:00 ` Ada is great for embedded systems (was Ada is almost useless in embedded systems) Ken & Virginia Garlington
[not found] ` <4fnqpm$3nh@news.sanders.lockheed.com>
1996-02-19 0:00 ` Ada is almost useless in embedded systems AdaWorks
1996-02-21 0:00 ` Ken Garlington
1996-02-21 0:00 ` Hugh Dunne
[not found] ` <4fnp37$nj1@theopolis.orl.mmc.com>
1996-02-22 0:00 ` Alan Brain
1996-02-19 0:00 ` Jon S Anthony
1996-02-19 0:00 ` AdaWorks
1996-02-21 0:00 ` Ken Garlington
1996-02-23 0:00 ` AdaWorks
1996-02-19 0:00 ` R.A.L Williams
1996-02-21 0:00 ` Richard A. O'Keefe
1996-02-26 0:00 ` R.A.L Williams
[not found] ` <4h3q56$1vk@goanna.cs.rmit.EDU.AU>
[not found] ` <dewar.825635955@schonberg>
[not found] ` <826571250.140@assen.demon.co.uk>
[not found] ` <dewar.826634800@schonberg>
1996-03-21 0:00 ` John McCabe
1996-03-23 0:00 ` Side-effect arithmetic again [was: Ada ... in embedded systems] John G. Volan
1996-03-23 0:00 ` Robert Dewar
1996-03-25 0:00 ` Tucker Taft
1996-03-25 0:00 ` Norman H. Cohen [this message]
1996-03-25 0:00 ` Robert A Duff
1996-03-26 0:00 ` John G. Volan
1996-03-26 0:00 ` Robert A Duff
1996-03-26 0:00 ` Tore Joergensen
1996-03-27 0:00 ` John G. Volan
1996-03-27 0:00 ` John G. Volan
1996-03-28 0:00 ` Tucker Taft
1996-03-28 0:00 ` Robert Dewar
1996-03-29 0:00 ` Tucker Taft
1996-03-29 0:00 ` Tucker Taft
1996-03-27 0:00 ` John G. Volan
1996-03-29 0:00 ` Robert A Duff
1996-03-30 0:00 ` John G. Volan
1996-03-30 0:00 ` John G. Volan
1996-03-31 0:00 ` AdaWorks
1996-04-01 0:00 ` Robert A Duff
1996-03-26 0:00 ` Robert Dewar
1996-03-29 0:00 ` Robert I. Eachus
[not found] ` <emery-0902962215150001@line316.nwm.mindlink.net>
[not found] ` <DMoA85.52I@eskimo.com>
[not found] ` <823965654.4500@assen.demon.co.uk>
[not found] ` <824165619.14894@assen.demon.co.uk>
[not found] ` <JSA.96Feb13133713@organon.com>
[not found] ` <824259217.26321@assen.demon.co.uk>
1996-02-17 0:00 ` Ada is almost useless in embedded systems Robert Dewar
1996-02-18 0:00 ` John McCabe
1996-02-18 0:00 ` Robert Dewar
1996-02-19 0:00 ` John McCabe
1996-02-20 0:00 ` Robert Dewar
1996-02-21 0:00 ` Fergus Henderson
[not found] ` <824332550.2485@assen.demon.co.uk>
1996-02-17 0:00 ` Ken & Virginia Garlington
1996-02-17 0:00 ` Robert Dewar
1996-02-18 0:00 ` John McCabe
1996-02-18 0:00 ` Robert Dewar
1996-02-19 0:00 ` John McCabe
[not found] ` <4fs7ml$cf1@rational.rational.com>
1996-02-26 0:00 ` Ada 83 " Alan Brain
[not found] ` <RALW.96Feb28100925@vulcan.gmrc.gecm.com>
[not found] ` <dewar.825775334@schonberg>
[not found] ` <RALW.96Mar8113005@vulcan.gecm.com>
[not found] ` <4hv2fb$6ra@cville-srv.wam.umd.edu>
[not found] ` <4xybp895y6.fsf@leibniz.enst-bretagne.fr>
[not found] ` <3144CC40.33A0@escmail.orl.mmc.com>
[not found] ` <dewar.826604375@schonberg>
[not found] ` <3145FF2C.6139@escmail.orl.mmc.com>
[not found] ` <dewar.826829407@schonberg>
[not found] ` <31499D21.1DA6@escmail.orl.mmc.com>
1996-03-15 0:00 ` Bug or Limitation? (was: Ada is almost useless in embedded systems) Robert Dewar
1996-03-16 0:00 ` Ted Dennison
1996-03-20 0:00 ` Side-effect arithmetic again [was: Ada ... in embedded systems] Robert I. Eachus
1996-03-20 0:00 ` John G. Volan
1996-03-22 0:00 ` Alan Brain
1996-03-20 0:00 ` Robert A Duff
1996-03-21 0:00 ` Peter Hermann
1996-03-21 0:00 ` Robert Dewar
1996-03-25 0:00 ` Robert I. Eachus
1996-03-28 0:00 ` Mats Weber
1996-03-29 0:00 ` John G. Volan
1996-03-21 0:00 ` Geert Bosch
1996-03-26 0:00 ` Mats Weber
1996-03-15 0:00 ` Ada is almost useless in embedded systems Robert I. Eachus
1996-03-18 0:00 ` Alan Brain
[not found] ` <4ik5bm$ogg@dayuc.dayton.saic.com>
1996-03-18 0:00 ` Side-effect arithmetic again [was: Ada ... in embedded systems] Robert Dewar
1996-03-19 0:00 ` Norman H. Cohen
1996-03-19 0:00 ` Jay Martin
1996-03-21 0:00 ` Robert I. Eachus
[not found] ` <dirk.827148504@demokrit>
1996-03-18 0:00 ` Ada is almost useless in embedded systems David Weller
1996-03-16 0:00 ` Kevin Dalley
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox