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: Robert Oliver Subject: Re: Software landmines (loops) Date: 1998/09/02 Message-ID: <35ED7082.1889@hfl.tc.faa.gov>#1/1 X-Deja-AN: 387170693 Content-Transfer-Encoding: 7bit References: <6r9f8h$jtm$1@nnrp1.dejanews.com> <6renh8$ga7$1@nnrp1.dejanews.com> <6rf59b$2ud$1@nnrp1.dejanews.com> <6rfra4$rul$1@nnrp1.dejanews.com> <35DBDD24.D003404D@calfp.co.uk> <6sbuod$fra$1@hirame.wwa.com> <35f51e53.48044143@ <904556531.666222@miso.it.uq.edu.au> <6sgror$je8$3@news.indigo.ie> <6sh3qn$9p2$1@hirame.wwa.com> <35ece7ee.1489912@news.erols.com> Content-Type: text/plain; charset=us-ascii Organization: FAA Technical Center, Pomona, NJ Mime-Version: 1.0 Newsgroups: comp.lang.eiffel,comp.object,comp.software-eng,comp.lang.ada Date: 1998-09-02T00:00:00+00:00 List-Id: Ell wrote: > The assertion that "single entry, single exit" is a required, or even > desirable, maxim of structured programming is a myth. > > No one (including RCM) can show that this maxim is in fact a coding > heuristic put forward by any of the founders of the structured > paradigm. [Check past posts in this thread.] Edward Yourdan, in his book Techniques of Program Structure and Design discusses this article: C. Bohm and G. Jacopini, "Flow Diagrams, Turing Machines, and Languages with Only two Formation Rules", Communications of the ACM, May 1996, pages 366-371. (Is this not *the* foundational article for structured programming?) Yourdan says: "According to Bohm and Jacopini, we need three basic building blocks in order to construct a program: 1. A process box. 2. A generalized loop mechanism. 3. A binary-decision mechanism. The process box, shown in Fig. 4.1, may be thought of as a single computational statement (or machine language instruction) *or as any other proper conputational sequence with only one entry and one exit* - such as a subtoutine." The emphasis between *...* above is his (shown in italics) not mine. In the next paragraph he says: "Note that the constructs shown in Fig. 4.2(a) and 4.2(b) {the decision and loop control structures} can themselves be thought of as a process box since they have only one entry and one exit. Thus we can define a transformation from a looping operation to a process box ..." I added the part between braces {}. I do not have the Bohm and Jacopini article. All I have is Yourdans description of it. However, it seems clear from his description that the "single entry - single exit" principle is fundamental to structured programming. Yourdan goes on to discuss some practical implementations such as various loop constructs and the case statement. During this discussion, he uses the "single entry - single exit" principle repeatedly and refers to it as part of the "black-box principle". Bob Oliver