Article View: comp.lang.misc
Article #5762Re: Many people's opinions on computer languages (was: Third public review of X3J11 C)
From: Steven Ryan
Date: Mon, 19 Sep 1988 21:01
Date: Mon, 19 Sep 1988 21:01
30 lines
2290 bytes
2290 bytes
>>If short-circuit && and || were not defined, then p && q and p || q
>>could be equivalent to p & q and p | q, with programmer responsible for
>>dangerous side-effects. In Ada this would perturb the code,
>>but it is not a problem in C or Algol because of the existence of conditional
>>expression.
>
>I am puzzled by the reference to ADA, which has
> and {roughly "&"} and then {same as "&&"}
Ada has and-then/or-else but doesn't have conditional expressions.
Pascal does/does not have either.
> or {roughly "|"} or else {same as "||"}
>and is thus the same as C (apart from having a separate boolean type).
>Why I say "roughly" is that if p and q are completely free of side effects,
>it is still not the case that "p&&q" and "p&q" have the same value.
>Consider, for example, p==4, q==2. Then p&&q is defined to be 1, but
>p&q is 0. For the same numbers, p||q is also 1, but p|q is 6.
>If you want an expression with the same value as p&&q, you have to write
> !!(p) & !!(q)
>
>There are three separate things:
> (a) bitwise masking operations
> (b) "pure" logical operations
> (c) short-circuit operations
>Fortran and Pascal conflate (b) and (c), leaving it up to the compiler to
>decide which to use. C omits (b), providing only (a) and (c). Algol 60
>provides (b) and if-expressions. Algol 68 provides (a), (b), and if-
>expressions. I think most people will agree that C is an improvement over
>BCPL, where the same symbol was used for both & and &&, but if you used it
>in a "value" context you got "&", while in a "control" context you got "&&".
Technical Details
Message-ID:
<1440@garth.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!cornell!uw-beaver!teknowledge-vaxc!sri-unix!garth!smryanReferences:
<8365@smoke.ARPA> <225800053@uxe.cso.uiuc.edu> <8374@smoke.ARPA> <340@quintus.UUCP> <910@l.cc.purdue.edu> <8695@ihlpb.ATT.COM> <1386@garth.UUCP> <585@aiva.ed.ac.uk> <1433@garth.UUCP> <429@quintus.UUCP>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!cornell!uw-beaver!teknowledge-vaxc!sri-unix!garth!smryan From: smryan@garth.UUCP (Steven Ryan) Newsgroups: comp.lang.misc Subject: Re: Many people's opinions on computer languages (was: Third public review of X3J11 C) Message-ID: <1440@garth.UUCP> Date: 19 Sep 88 21:01:42 GMT References: <8365@smoke.ARPA> <225800053@uxe.cso.uiuc.edu> <8374@smoke.ARPA> <340@quintus.UUCP> <910@l.cc.purdue.edu> <8695@ihlpb.ATT.COM> <1386@garth.UUCP> <585@aiva.ed.ac.uk> <1433@garth.UUCP> <429@quintus.UUCP> Reply-To: smryan@garth.UUCP (Steven Ryan) Organization: INTERGRAPH (APD) -- Palo Alto, CA Lines: 30