<?xml version="1.0" encoding="windows-1252"?>
<node id="130046" title="Re: Would you use 'goto' here?" created="2001-12-06 18:59:36" updated="2005-08-13 08:32:37">
<type id="11">
note</type>
<author id="57126">
hsmyers</author>
<data>
<field name="doctext">
&lt;p&gt;For those who are interested, here is a &lt;A HREF="http://www.acm.org/classics/oct95/"&gt;link&lt;/A&gt; to &lt;em&gt;one&lt;/em&gt; of the reasons behind the cargo cult notion of no &lt;b&gt;gotos&lt;/b&gt;. This of course is &lt;em&gt;&amp;ldquo;Go To Statement Considered Harmful&amp;rdquo;&lt;/em&gt;, E. Dijkstra's famous letter to the editor of &lt;em&gt;Communications of the ACM&lt;/em&gt;, Vol. 9, No. 5 (May 1966), pp. 366-71. Like the basis of many such things, it doesn't quite say what many think&amp;mdash;and in any event, should be read by anyone who programs or even pretends to program!&lt;/p&gt;
&lt;p&gt;Another article that should be read in this context is found &lt;A HREF="http://pplab.snu.ac.kr/courses/PL2001/papers/p261-knuth.pdf"&gt;here&lt;/A&gt;. Actually the link is to a .pdf file created from scanner input. But still legible for all of that. This paper, &lt;em&gt;&amp;ldquo;Structured Programming with go to Statements&amp;rdquo;&lt;/em&gt;, is by Donald Knuth, published in &lt;em&gt;Current Trends in Programming Methodology&lt;/em&gt;, Vol. 1, Raymond T. Yeh, ed., New York, NY., 1977. In it Knuth details a history of the go to discussion and then follows with his position and rationale.
&lt;p&gt;This pair make a good start, but only a start. If you want more before you come to an informed opinion, try &lt;em&gt;Classics in Software Engineering&lt;/em&gt; Editied by Edward Nash Yourdon, New York, NY., Yourdon Press, 1979. While sadly out of print, this shows up from time to time at Powell's Technical in Portland. Try &lt;A HREF="http://www.powells.com/technicalbooks"&gt;http://www.powells.com/technicalbooks&lt;/A&gt; 
&lt;p&gt;&amp;ndash;hsm&lt;/p&gt;&lt;em&gt;p.s. Do I use gotos? Of course I do, I'm an assembler hack&amp;mdash;can't get there from here without them!&lt;/em&gt;</field>
<field name="root_node">
129788</field>
<field name="parent_node">
129788</field>
</data>
</node>
