comp.lang.ada
 help / color / mirror / Atom feed
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.






  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