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: 103376,4b06f8f15f01a568 X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,9a0ff0bffdf63657 X-Google-Attributes: gid1108a1,public X-Google-Thread: f43e6,9a0ff0bffdf63657 X-Google-Attributes: gidf43e6,public From: "Robert Martin" Subject: Re: Software landmines (loops) Date: 1998/09/03 Message-ID: <6snn1b$c90$1@hirame.wwa.com>#1/1 X-Deja-AN: 387711627 References: <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> <6shbca$66c$1@news.indigo.ie> <6shhq7$lut$1@hirame.wwa.com> <6sjbso$1lk$2@news.indigo.ie> <6sjijg$36r$1@hirame.wwa.com> <6skhcm$1dr$2@news.indigo.ie> <6skqf3$9g0$1@hirame.wwa.com> <35f1f9fe.9111641@news.erols.com> <35f23ce2.7649859@news.erols.com> X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4 Organization: WorldWide Access - Midwestern Internet Services - www.wwa.com Newsgroups: comp.lang.eiffel,comp.object,comp.software-eng,comp.lang.ada Date: 1998-09-03T00:00:00+00:00 List-Id: Ell wrote in message <35f23ce2.7649859@news.erols.com>... > >Think "avoid unstructured control flow", and not "avoid [creating code >which has multiple exits]". You had best define 'unstructured' in this context. Dijkstra's definition of 'unstructured control flow' is control flow that does not conform precisely to the four standard sequencing elements {sequence, selection, top exit loop, bottom exit loop}, all of which have a single entry and a single exit. >That's the true spirit of one aspect of the structured paradigm as I >see it. The other being that we should use abstractions to design >code and to model functional domain processes. > >It was Dijkstra who said he thinks of *abstraction* when someone >mentions "structured programming". Indeed, Dijkstra talks about abstraction quite a bit in the book "Structured programming". One of his uses of the term is that the four sequencing elements he recommends can all be considered to be units whose internals can, at times, be ignored (i.e. abstracted away) because they have a single entry and a single exit. Robert C. Martin | Design Consulting | Training courses offered: Object Mentor | rmartin@oma.com | Object Oriented Design 14619 N Somerset Cr | Tel: (800) 338-6716 | C++ Green Oaks IL 60048 | Fax: (847) 918-1023 | http://www.oma.com "One of the great commandments of science is: 'Mistrust arguments from authority.'" -- Carl Sagan