Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!bionet!ames!hc!lanl!jlg From: jlg@lanl.gov (Jim Giles) Newsgroups: comp.lang.fortran Subject: Re: Structured languages don't exist! (Was: Re: DO loops, anyone?) Message-ID: <10571@lanl.gov> Date: 17 Mar 89 00:34:01 GMT References: <18178@vax5.CIT.CORNELL.EDU> Organization: Los Alamos National Laboratory Lines: 38 From article <18178@vax5.CIT.CORNELL.EDU>, by btcx@vax5.CIT.CORNELL.EDU: > [...] > Now, I'm not a GOTO freak, and I learned to only goto CONTINUE's, but > does anybody realize the origin of the anti-GOTO religion? And how the above > statement is a misrepresentation of that origin? (see BTW below) > > [...] > > BTW, the origin of anti-GOTOism was an early 60's paper that proposed/observed > an inverse correlation of programMER quality and frequency of GOTO use. > N.B. the criticism was aimed at *programmers*, NOT goto's. You are missing a subtle linguistic issue here. I always distinguish between 'structured programming' (all lower case letters) and 'Structured Programming' with initial caps. The first ('structured programming') was a programming technique promoted in the late 60's and early 70's (by Dijkstra, among others). This technique consisted mainly of stepwise refinement of the program specification together with careful selection of data structures. The main purpose of this 'structured programming' was to promote the quality of programs in terms of reliability and maintainability. This first definition of 'structured programming' is almost _never_ used any more. The second version ('Structured Programming') is a modern religious bias against certain language constructs - particularly GOTO's. This bias can trace its roots to a paper by Dijkstra (which you mentioned above) which in its turn was a response to unpublished correspondence from as early as the late 50's/ early 60's. As pointed out above, it was the misuse of GOTO's and not GOTO's themselves which were the target of attack. The purpose again was to promote the quality of programs. The modern bias has, however, completely lost track of the original issue. 'Structured Programming' as the term is presently used has no relation to improving code quality but, is instead, just a stylistic bias - often called a religion. It is unfortunate that this second (and less useful) meaning of the phrase is the most commonly used (almost to the exclusion of the other). It is often the case that using a GOTO is the most 'structured' way to do something, but it is _never_ the most 'Structured' way to do something.