From: "DuckE" <nospam_steved94@home.com>
Subject: Re: short-circuit control forms (& 'long names are doom')
Date: Fri, 22 Jun 2001 03:10:40 GMT
Date: 2001-06-22T03:10:40+00:00 [thread overview]
Message-ID: <QGyY6.222270$p33.4459972@news1.sttls1.wa.home.com> (raw)
In-Reply-To: Xns90C7A5EA1B78Dcharleshixsonearthli@207.217.77.21
There was an interesting thread on this subject back in 95 (search for short
circuit in the Google archives of comp.lang.ada).
I found Tucker Taft's comment particularly interesting:
": If both operands are
: always evaluated, does that mean that whenever it is unnecessary to
: evaluate the second operand, one should use the short-circuit operators
: for efficiency?
To avoid depending on the quality of your compiler's optimizer,
I personally recommend using short-circuit operations by default,
and only use "and" or "or" when it is *required* that both
operands be evaluated.
Of course, a clever optimizer can actually evaluate both
operands even though a short circuit is specified, so long
as there are no side-effects (including possibilities for
exceptions). For example, if A and B are boolean variables,
then a compiler might decide it is more efficient to just
"and" them together even when "and then" is specified,
to avoid the extra conditional branches.
Hence, if your compiler is clever, it doesn't matter what you
do since it will un-do it if appropriate, and if your compiler is
not clever, then using short-circuit by default probably produces
somewhat better code quality on average.
next prev parent reply other threads:[~2001-06-22 3:10 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-06-20 19:23 short-circuit control forms James A. Krzyzanowski
2001-06-20 20:15 ` Ted Dennison
2001-06-20 20:47 ` Marin David Condic
2001-06-20 22:23 ` Jeffrey Carter
2001-06-21 0:45 ` Al Christians
2001-06-21 15:06 ` Wes Groleau
2001-06-21 15:46 ` Al Christians
2001-06-21 18:28 ` Wes Groleau
2001-06-21 18:51 ` Marin David Condic
2001-06-22 12:17 ` Marc A. Criley
2001-06-22 14:55 ` Marin David Condic
2001-06-22 20:58 ` Robert Dewar
2001-06-22 21:49 ` Ted Dennison
2001-06-22 22:58 ` Jeffrey Carter
2001-06-23 0:38 ` Larry Kilgallen
2001-06-23 17:34 ` Simon Wright
2001-06-26 15:48 ` Wes Groleau
2001-06-25 17:00 ` Wes Groleau
2001-06-21 0:13 ` Mark Lundquist
2001-06-21 0:55 ` Al Christians
2001-06-21 12:39 ` Larry Kilgallen
2001-06-21 15:02 ` Wes Groleau
2001-06-21 14:24 ` short-circuit control forms (& 'long names are doom') Paul Graham
2001-06-21 17:20 ` Warren W. Gay VE3WWG
2001-06-21 18:32 ` Wes Groleau
2001-06-21 23:18 ` Charles Hixson
2001-06-22 1:01 ` Larry Kilgallen
2001-06-22 3:10 ` DuckE [this message]
2001-06-22 15:46 ` Wes Groleau
2001-06-22 19:02 ` Ted Dennison
2001-06-22 19:16 ` Ted Dennison
2001-06-22 20:53 ` Robert Dewar
2001-06-22 20:43 ` Robert Dewar
2001-06-22 22:34 ` Jerry Petrey
2001-06-25 14:30 ` Marin David Condic
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox