comp.lang.ada
 help / color / mirror / Atom feed
From: Ted Dennison<dennison@telepath.com>
Subject: Re: an infinate loop
Date: Fri, 13 Jul 2001 18:11:27 GMT
Date: 2001-07-13T18:11:27+00:00	[thread overview]
Message-ID: <jRG37.18541$Kf3.243172@www.newsranger.com> (raw)
In-Reply-To: 3B4F2962.25BB60FF@boeing.com

In article <3B4F2962.25BB60FF@boeing.com>, Jeffrey Carter says...
>
>Ted Dennison wrote:
..
>This is bad advice. The form that uses positive logic is best.
>
loop
>exit when End_Of_File;
>
>uses positive logic, and is better than
>
>while not End_Of_File loop
>
>which uses negative logic. All of the exits in this program use positive
>logic. In general, exit tends to use positive logic and while tends to
>use negative logic.

True. As a seperate issue, I'd say it is better when you can rearrange the
condition so it uses positive logic. Unfortunately, you can't always do that,
and this is one of those cases. So you have to look at the overall effect one
way vs. the other and ask yourself which is clearer.

>At the "Ada Launch" (1980 Dec 10), Ichbiah, Barnes, and Firth introduced
>the recently renamed Ada language (MIL-STD 1815, formerly Green, now
>known as Ada 80) to the world. They said "while" was in the language
>primarily to support translation from languages such as Pascal, and
>advised using the "loop ... exit when" format in new code.

Interesting. Do you have a reference for this (or perhaps you were there)? It
seems like rather bad logic, as you can clearly construct any of the other kinds
of loops with "loop" and "exit". I do remember hearing (second hand. I'm not
trying to claim I was there either) a quote similar to this about "goto". There
are those here who would dispute its validity in that context too though.

The issue with "for" and "while" is that they are more controlled, constrained
variants of "loop". As such, they are useful for designating that this is a loop
that behaves in one of those controlled, constrained type of ways. If it is just
"loop", then the reader has to assume its control structure could be pretty much
*anything*, and go reading through all the code inside to see what it actually
is. 

---
T.E.D.    homepage   - http://www.telepath.com/dennison/Ted/TED.html
          home email - mailto:dennison@telepath.com



  reply	other threads:[~2001-07-13 18:11 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-07-12 21:43 an infinate loop Beau
2001-07-13  3:21 ` DuckE
2001-07-13 13:57 ` Ted Dennison
2001-07-13 17:01   ` Jeffrey Carter
2001-07-13 18:11     ` Ted Dennison [this message]
2001-07-13 22:26       ` Jeffrey Carter
2001-07-16 15:14         ` Marin David Condic
2001-07-17 17:02           ` Matthias Kretschmer
2001-07-17 17:56             ` Marin David Condic
2001-07-17 19:25               ` Ted Dennison
2001-07-19 11:38                 ` Matthias Kretschmer
2001-07-19 14:28                   ` Ted Dennison
2001-07-17 17:13           ` Warren W. Gay VE3WWG
2001-07-14 23:41       ` Darren New
2001-07-16 13:24         ` Ted Dennison
2001-07-16 15:19           ` Marin David Condic
2001-07-13 20:40     ` chris.danx
2001-07-13 22:29       ` Jeffrey Carter
2001-07-14 14:00         ` Robert Dewar
2001-07-14 16:17           ` Negative Logic (was: Re: an infinate loop) Jeffrey Carter
2001-07-17  4:06             ` Robert Dewar
2001-07-17  4:23             ` Robert Dewar
2001-07-16  9:26           ` an infinate loop Philip Anderson
2001-07-19  9:32             ` an infinite [was: infinate] loop AG
2001-07-15 21:18   ` an infinate loop Matthias Kretschmer
2001-07-16 21:59   ` Stephen Leake
2001-07-13 16:48 ` C. Bauman
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox