[Home] [By Thread] [By Date] [Recent Entries]

  • From: "Ken North" <kennorth@s...>
  • To: <xml-dev@l...>
  • Date: Thu, 14 Dec 2006 21:05:19 -0800

Leigh Klotz wrote:
> the question here is whether the evaluation of AND
> and OR stopped once the value became determined,
> or whether they evaluated all arguments.  If evaluation
> stops, then AND and OR can be used as
> control constructs.

Whether the language was COBOL, FORTRAN, Algol, C or other compiled languages, 
it eventually ended up as executable instructions. The heart of the matter is 
the order of execution.

If our pseudo-code is IF ((a AND b) OR c) ...
then you'd see instructions something like this:

        L       R7, a                 ; load a into register 7
        L        R8, b
        AND  R7, R8
        BNZ  20$                   ; if true
         TST  c                       ; test the c bits
         BNZ  20$
10$:
          ...
          ...
20$:  ...

2. Now assume you used an optimizing compiler and the pseudo-code was:

IF ((a AND b AND c AND d) OR e)

It would put the e test first:

         TST  e                       ; test the e bits
         BNZ  20$                   ; if true
        L       R7, a                 ; load a into register 7
        L        R8, b
        ...   and so on

3. Now assume the pseudo-code is IF ((a AND b) XOR c) ...
Because it's an exclusive OR, you need to test both sides because it's true when 
only one side is true.





======== Ken North ===========
www.WebServicesSummit.com
www.SQLSummit.com
www.GridSummit.com



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member