comp.lang.ada
 help / color / mirror / Atom feed
From: wtanksle@sdcc10.ucsd.edu (William Tanksley)
Subject: Re: Programming language vote - results
Date: 1997/11/25
Date: 1997-11-25T00:00:00+00:00	[thread overview]
Message-ID: <65di3v$730$1@news1.ucsd.edu> (raw)
In-Reply-To: 347440AD.35DF@idt.net


In article <347440AD.35DF@idt.net> trs@idt.net writes:
>[big snip]

>> > Simple example from real life:

>> > if (call_this() || call_that());

>> I find myself using a construct like this a lot recently (snipped directly
>> from code I'm working on right now):

>> if(!to && !(to = malloc(sizeof *to)))) return(NULL);

>All of these constructs are flat out wrong. As far as I can remember,
>neither C or C++ guarantees that the clauses in a condition will be
>evaluated in the order you wrote them. IOW,

According to the ANSI standard and K&R, as well as universal prior
practice, the boolean logical operators are short-circuiting.  This means
that they MUST exectute in order.  In fact, this is required explicitly by
ANSI and K&R.

>The malloc example *probably* has enough parentheses to force it to work
>in the right order but the fact is that the code is obscure at best and
>wrong at worst. It is also no more efficient when compiled than the
>equivalent construct:

It'll work, so long as the library returns zeroes for nulls.  I personally
find it more readable than its stretched alternative, although for most
other purposes I'd use the stretch.

>if (!call_this())
>  call_that();

>Which, incidentally, is one *less* key stroke if you use a tab for the
>indent. Count 'em - I added four and deleted 5.

But then, I use an editor which is made to cut down on such keystrokes.
But who's counting.

>I would not accept this code at a walkthrough.

I'd have to see the surrounding design -- the malloc example looks
dismaying, but there might be a reason which I can't imagine to not know
and not care whether a pointer was initialized.

The if( this() || that() ); example I would toss right out -- but then
I've NEVER seen that written anywhere.  this() || that(); works exactly as
well, and doesn't tempt the code maintainer to assume that the semicolon
was a typo.

It's worth noting that using the short circuiting of 'or' is very common
in many languages.  Note some of the nicer aspects of Perl: "open file or
die".  Now THAT'S an idiom -- and me a good Python man :).

>Terry Richards

-Billy




  parent reply	other threads:[~1997-11-25  0:00 UTC|newest]

Thread overview: 147+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <343fbb5a.0@news.iprolink.ch>
1997-10-11  0:00 ` Programming language vote - results Gary L. Scott
1997-10-12  0:00   ` Jack Rudd
1997-10-13  0:00     ` Robert Munck
1997-10-13  0:00       ` Gary L. Scott
1997-10-13  0:00       ` Jack Rudd
1997-10-13  0:00     ` safetran
1997-10-13  0:00       ` Jack Rudd
1997-10-14  0:00         ` Philip Brashear
1997-10-14  0:00           ` Gary L. Scott
1997-10-13  0:00       ` FRS DES
1997-10-13  0:00     ` Gary L. Scott
     [not found]     ` <3442B745.5352@lmco.com>
1997-10-15  0:00       ` Gary L. Scott
1997-10-16  0:00       ` James Giles
1997-10-16  0:00         ` Andrew Haley
1997-10-13  0:00   ` David Ness
1997-10-14  0:00     ` Randy MacDonald
1997-10-14  0:00     ` Jan Karman
1997-10-15  0:00       ` Alan E & Carmel J Brain
1997-10-15  0:00         ` D'Arcy J.M. Cain
1997-10-15  0:00           ` Mark Stephen
1997-10-17  0:00             ` Randy MacDonald
1997-10-15  0:00           ` FRS DES
1997-10-16  0:00           ` Randy MacDonald
1997-10-16  0:00           ` Alan E & Carmel J Brain
1997-10-16  0:00             ` John Sullivan
1997-10-17  0:00               ` Alan E & Carmel J Brain
1997-10-17  0:00                 ` John Sullivan
1997-10-17  0:00               ` Randy MacDonald
1997-10-16  0:00             ` FRS DES
1997-10-17  0:00               ` Jerry van Dijk
1997-10-17  0:00             ` Randy MacDonald
1997-10-20  0:00               ` Alan E & Carmel J Brain
1997-10-20  0:00                 ` FRS DES
1997-10-21  0:00                   ` Alan E & Carmel J Brain
1997-10-20  0:00                 ` Lawrence Kirby
1997-10-20  0:00                   ` Kaz
1997-10-21  0:00                     ` Alan E & Carmel J Brain
1997-10-23  0:00                     ` Ada Readability (Re: Programming language vote - results) Ray Blaak
1997-10-21  0:00                   ` Programming language vote - results Alan E & Carmel J Brain
1997-10-21  0:00                 ` Randy MacDonald
1997-10-22  0:00                   ` Don Guinn
1997-10-29  0:00                     ` Randy MacDonald
     [not found]                     ` <01bce1bf$5c2baaa0$95b66bcf@dkelly.ark.com>
1997-10-29  0:00                       ` FRS DES
1997-10-29  0:00                       ` Don Guinn
1997-10-29  0:00                         ` Shmuel (Seymour J.) Metz
1997-10-31  0:00                         ` Documenting Code (was:Programming language vote - results) Alan E & Carmel J Brain
1997-10-30  0:00                           ` Charles Lin
1997-10-30  0:00                             ` James L. Ryan
1997-10-31  0:00                               ` Robert Bernecky
1997-10-31  0:00                             ` Robert Bernecky
1997-11-01  0:00                           ` Randy MacDonald
1997-11-01  0:00                             ` Robert Dewar
1997-11-03  0:00                               ` Jon S Anthony
1997-10-25  0:00                   ` Programming language vote - results Alan E & Carmel J Brain
1997-10-26  0:00                     ` functionality of Java (was Re: Programming language vote - results) Randy MacDonald
1997-10-23  0:00                 ` Programming language vote - results Jack Rudd
1997-10-25  0:00                   ` Alan E & Carmel J Brain
1997-10-25  0:00                     ` Kaz
1997-10-26  0:00                       ` FRS DES
1997-10-27  0:00                       ` Robert Bernecky
1997-10-27  0:00                         ` APL argument W. Wesley Groleau x4923
1997-10-28  0:00                           ` Randy MacDonald
1997-10-28  0:00                         ` Programming language vote - results Jan Karman
1997-10-28  0:00                           ` Robert Bernecky
1997-10-28  0:00                             ` James L. Ryan
1997-10-29  0:00                               ` Robert Bernecky
     [not found]                                 ` <bosworth-2910972044300001@access59.accsyst.com>
1997-10-30  0:00                                   ` Robert Bernecky
1997-10-30  0:00                                     ` James L. Ryan
1997-10-31  0:00                                       ` Robert Bernecky
1997-10-31  0:00                                         ` James L. Ryan
1997-10-29  0:00                     ` Jack Rudd
1997-10-25  0:00                 ` Peter Seebach
1997-11-18  0:00                   ` Ingemar Ragnemalm
1997-11-18  0:00                     ` firewind
1997-11-18  0:00                       ` Kevin Swan
1997-11-19  0:00                         ` Alan E & Carmel J Brain
1997-11-18  0:00                       ` Larry Elmore
1997-11-20  0:00                         ` firewind
1997-11-19  0:00                       ` Mike Smith
1997-11-19  0:00                         ` Matt
1997-11-20  0:00                         ` firewind
     [not found]                           ` <3474C71B.536B12F6@cgocable.net>
1997-11-21  0:00                             ` CVigue
1997-11-23  0:00                           ` Lawrence Kirby
1997-11-24  0:00                             ` FRS DES
1997-11-20  0:00                       ` Terry Richards
1997-11-20  0:00                         ` Andy Knight
1997-11-23  0:00                         ` Alex Krol
1997-11-25  0:00                         ` William Tanksley [this message]
1997-11-26  0:00                           ` Ron Natalie
1997-11-27  0:00                             ` William Tanksley
1997-11-27  0:00                               ` Lawrence Kirby
     [not found]                                 ` <65keij$mkd$1@nerd.apk.net>
1997-11-27  0:00                                   ` Kaz Kylheku
1997-11-28  0:00                               ` Shmuel (Seymour J.) Metz
1997-12-01  0:00                                 ` FRS DES
1997-11-20  0:00                       ` Coding for Obscurity Alan E & Carmel J Brain
1997-11-20  0:00                         ` Stephan Wilms
1997-11-21  0:00                           ` Jos A. Horsmeier
1997-11-23  0:00                           ` Al Christians
1997-11-23  0:00                           ` Alex Krol
1997-11-24  0:00                             ` Jim Johnson
1997-11-24  0:00                               ` Mark Wilden
1997-11-26  0:00                                 ` Robert S. White
1997-11-26  0:00                                   ` Miguel Carrasquer Vidal
1997-12-01  0:00                                     ` ISONE
1997-12-01  0:00                                     ` ISONE
1997-11-26  0:00                                   ` Mark Wilden
1997-11-26  0:00                                   ` Leon Jones
1997-11-26  0:00                                     ` Ron Natalie
1997-11-27  0:00                                       ` Joerg Rodemann
1997-11-26  0:00                                     ` Lawrence Kirby
1997-11-27  0:00                                   ` Richard A. O'Keefe
1997-11-24  0:00                           ` Richard A. O'Keefe
1997-11-24  0:00                             ` Matt
1997-11-24  0:00                               ` Ed Falis
1997-11-24  0:00                             ` Samuel T. Harris
1997-11-24  0:00                               ` Jon S Anthony
1997-11-25  0:00                                 ` Samuel T. Harris
1997-11-20  0:00                         ` firewind
1997-11-20  0:00                           ` Jos A. Horsmeier
1997-11-20  0:00                       ` Programming language vote - results Andy Knight
1997-11-20  0:00                         ` firewind
1997-11-18  0:00                     ` Lawrence Kirby
1997-11-24  0:00                       ` Martin M Dowie
1997-11-25  0:00                         ` Kaz Kylheku
1997-11-26  0:00                           ` Peter Seebach
1997-12-02  0:00                           ` ANDREAS LEITNER
1997-12-02  0:00                             ` Robert Dewar
1997-12-02  0:00                             ` Lawrence Kirby
1997-12-03  0:00                               ` Billy Chambless
1997-12-03  0:00                                 ` Robert Dewar
1997-12-05  0:00                             ` John Sullivan
1997-11-25  0:00                         ` Mark Wilden
1997-11-25  0:00                           ` Martin M Dowie
1997-11-26  0:00                             ` Lawrence Kirby
1997-11-26  0:00                           ` FRS DES
1997-11-18  0:00                     ` Kevin Swan
1997-11-29  0:00                       ` Ingemar Ragnemalm
1998-09-10  0:00                         ` Steven Katz
1997-11-19  0:00                     ` Peter Seebach
1997-11-19  0:00                     ` Alan E & Carmel J Brain
     [not found]           ` <01bcdad2$fa9fdf60$25a43a91@basil.omroep.nl>
1997-10-17  0:00             ` D'Arcy J.M. Cain
1997-10-17  0:00         ` Robert I. Eachus
1997-10-13  0:00   ` Robert S. White
1997-10-13  0:00     ` Gary L. Scott
1997-10-13  0:00   ` Matthew Heaney
1997-10-14  0:00     ` Gary L. Scott
1997-10-19  0:00 ` William Rapp
replies disabled

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