From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,3b4bed4f74b8ac49 X-Google-Attributes: gid103376,public From: mheaney@ni.net (Matthew Heaney) Subject: Re: GNAT messages and the not operator (pitfall alert!) Date: 1996/10/26 Message-ID: #1/1 X-Deja-AN: 192480550 references: <54snn6$8j5@newsbf02.news.aol.com> content-type: text/plain; charset=ISO-8859-1 organization: Estormza Software mime-version: 1.0 newsgroups: comp.lang.ada Date: 1996-10-26T00:00:00+00:00 List-Id: In article <54snn6$8j5@newsbf02.news.aol.com>, johnherro@aol.com (John Herro) wrote: >It's also arguable that "everyone" knows that "and" comes before "or". Are you sure? My understanding is that "and" and "or" have equal precedence, and that Ada *requires* the use of parens to force to programmer to state his intent. The Ada 83 explains that because we've all been taught algebraic logic since we were young whipper-snappers, the precedence of "+" and "*" is well-kwown. But because we haven't all been taught relational logic that long, there's some potential ambiguity. So Ada eliminates it once and for all by forcing the use parens. The thing I'd like to add, however, is to admonish programmers to not to write complicated predicates! If you're writing a predicate that requires the use of "a lot of" parens, then try to re-think your solution. As has been noted in this group before, one of the largest sources of errors (perhaps _the_ largest) is predicates, especially getting loop termination correct. Please, please, if you need to leave a loop early, then use "exit when..." or return. I've often seen code (even in software engineering texts that use Ada examples) that sets a loop flag to false, that in turn gets tested at the top of the (while) loop. This is clearly a misuse of the language and a violation of all the principles of programming as a _human_ activity, as you've just doubled the number of states you have to test! -------------------------------------------------------------------- Matthew Heaney Software Development Consultant mheaney@ni.net (818) 985-1271