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: 1108a1,9a0ff0bffdf63657 X-Google-Attributes: gid1108a1,public X-Google-Thread: 103376,4b06f8f15f01a568 X-Google-Attributes: gid103376,public X-Google-Thread: f43e6,9a0ff0bffdf63657 X-Google-Attributes: gidf43e6,public From: Patrick Logan Subject: Re: Software landmines (loops) Date: 1998/09/02 Message-ID: #1/1 X-Deja-AN: 387236980 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: Teleport - Portland's Public Access (503) 220-1016 NNTP-Posting-Date: Wed, 02 Sep 1998 13:10:05 PDT Newsgroups: comp.lang.eiffel,comp.object,comp.software-eng,comp.lang.ada Date: 1998-09-02T00:00:00+00:00 List-Id: In comp.object Robert I. Eachus wrote: : Nice quotes, but you have to understand them. In the sense of : these quotes it is not possible to have multiple entries or exits to : subroutines in most modern languages. The multiple exits in this : sense are what you get with longjumps in C--the subroutine returns to : a place other than the one it was called from. 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". : The multiple entries were common in PL/I, where depending on the : name in the call you would enter the same code at different points. : Typical in fact was to have multiple profiles where the procedure : had three or four different parameter profiles, and you called the : correct one for the parameters you wanted to supply. 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"! : All subprograms in most modern languages are closed subroutines in : the sense of this quote--they have a single entry, and the returns all : go to the same place. (Absent exceptions, Unix signals, and the like.) This may or may not be the case. I'd have to read the entire text to judge for myself. In any case, I'd say the principle applies to subroutine exits as well as loop entrances and exits. -- Patrick Logan (H) mailto:plogan@teleport.com (W) mailto:patrickl@gemstone.com http://www.gemstone.com