“Structured Programming With go To Statements”, Donald Knuth1974-12 (; backlinks)⁠:

[Dijkstra’s criticisms considered harmful] A consideration of several examples sheds new light on the problem of creating reliable, well-structured programs that behave efficiently.

This study focuses largely on two issues: (1) improved syntax for iterations and error exits, making it possible to write a larger class of programs clearly and efficiently without GOTO statements; (2) a methodology of program design, beginning with readable and correct, but possibly inefficient programs that are systematically transformed if necessary into efficient and correct, but possibly less readable code.

The discussion brings out opposing points of view about whether GOTO statements should be abolished; some merit is found on both sides of this question.

Finally, an attempt is made to define the true nature of structured programming, and to recommend fruitful directions for further study.

[Keywords: structured programming, go to statements, language design, event indicators, recursion, Boolean variables, iteration, optimization of programs, program transformations, program manipulation systems searching, Quicksort, efficiency]