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: stevenp@bnr.co.uk (Steven Perryman) Subject: Re: Software landmines (loops) Date: 1998/09/03 Message-ID: <6slila$sk1@bmdhh222.bnr.ca>#1/1 X-Deja-AN: 387414154 References: <6sfc2r$6ph$1@hirame.wwa.com> <35eb36d9.729148@news.erols.com> <6sfqlr$gat$1@hirame.wwa.com> Organization: BNR Europe Ltd, London Road, Harlow, England. Newsgroups: comp.lang.eiffel,comp.object,comp.software-eng,comp.lang.ada Date: 1998-09-03T00:00:00+00:00 List-Id: In article <6sfqlr$gat$1@hirame.wwa.com> "Robert Martin" writes: >The chapter that I have cited and quoted is a general description of >structured programming, its constituents, its motivations, and its benefits. >If you are looking for a one-liner, I'm afraid that Dijkstra wasn't >anticipating you. But the design heuristic is in the chapter in any case; >just not conviently isolated into a single quotable sentence. >The essence of the chapter is that all programs ought to be constructed from >simpler elements that have singly entry points and single exit points. The >motivation is understandabililty and provability. Correct. The bottom line has always been this : Dijkstra defined a set of primitive 'blocks' (if, while etc) . He asserts some 'state of being' prior to entering each block, and the state after exiting that block. Using the single-entry single-exit concept, he was able to precisely reason and verify the behaviour of those blocks. The blocks can then be used to build higher-level blocks (repeat-until, case etc) . These concepts then appear to have been taken on by folks like the Yourdon brigade et al, applied to functions and modules, resulting in the era that is called 'structured programming' (FWIW, I don't know when the term was officially first used, as is the case for the term 'OO' ) . While Elliott rants on looking for the one-liner soundbite that isn't, the rest of us know and accept that Dijkstra's work very much underpins the notions of 'structured programming in the small' . Regards, Steven Perryman stevenp@nortel.co.uk