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: fac41,9a0ff0bffdf63657 X-Google-Attributes: gidfac41,public X-Google-Thread: f43e6,9a0ff0bffdf63657 X-Google-Attributes: gidf43e6,public X-Google-Thread: 1108a1,9a0ff0bffdf63657 X-Google-Attributes: gid1108a1,public X-Google-Thread: 103376,4b06f8f15f01a568 X-Google-Attributes: gid103376,public From: eachus@spectre.mitre.org (Robert I. Eachus) Subject: Re: Software landmines (loops) Date: 1998/09/03 Message-ID: #1/1 X-Deja-AN: 387659750 References: <6rfra4$rul$1@nnrp1.dejanews.com> <35DBDD24.D003404D@calfp.co.uk> <6sbuod$fra$1@hirame.wwa.com> <904556531.666222@miso.it.uq.edu.au> <6sgror$je8$3@news.indigo.ie> <6sh3qn$9p2$1@hirame.wwa.com> <6simjo$jnh$1@hirame.wwa.com> <35eeea9b.2174586@news.erols.com> Organization: The Mitre Corp., Bedford, MA. Newsgroups: comp.lang.eiffel,comp.object,comp.software-eng,comp.lang.ada Date: 1998-09-03T00:00:00+00:00 List-Id: In article Patrick Logan writes: > The C, C++, Java, Smalltalk, and Common Lisp languages all allow a > form of a "return" statement to appear anywhere within a block of > statements. Some of these languages have a form of GOTO that allow > multiple exits from loops. I would think these languages make up > "most modern languages". I could add more to the list, but you are missing the point. All of these languages have exceptional ways of returning to some other point in the code, but the return statements all go to the point of the call (unless you fiddle with the stack). In ancient days the return stack was under programmer control, so you often saw code that changed the return address. (I remember once wanting to throw one of those 4" thick binders of listings across the room because I finally tracked down an obscure bug to a pair of lines that read: RETURN = IS TBD C SET RETURN VALUE (Yes, FORTRAN 66 didn't hiccup. The careful leading I made that TBD an integer, and once I found it, that blasted comment gave no clue as to what that value should be changed to! Oh, yes, the space was non-significant, so that variable was named ISTBD.) > I remember some FORTRAN code to do printed circuit board layout > implementing all of its loops using GOTOs. Some of these loops had > GOTOs at the top that jumped into the middle of the "loop"! Of course, that was the "normal" way to do an N and a half loop in FORTRAN. -- Robert I. Eachus with Standard_Disclaimer; use Standard_Disclaimer; function Message (Text: in Clever_Ideas) return Better_Ideas is...