Letters to the editor: go to statement considered harmful

  title={Letters to the editor: go to statement considered harmful},
  author={Edsger W. Dijkstra},
  journal={Commun. ACM},
  • E. Dijkstra
  • Published 1 March 1968
  • Computer Science
  • Commun. ACM
For a number of years I have been familiar with the observation that the quality of programmers is a decreasing function of the density of go to statements in the programs they produce. More recently I discovered why the use of the go to statement has such disastrous effects, and I became convinced that the go to statement should be abolished from all "higher level" programming languages (i.e. everything except, perhaps, plain machine Code). At'that time I did not attach too much importance to… 
Regular Expressions for Program Computations
This survey uses a modern software engineering framework for the investigation, using topics that are important to a contemporary computer science research area known as software metrics, and employs an algebra of regular expressions, as most commonly encountered in the theory of automata, all toward offering a modified form of the now-classical Bohm-Jacopini result, and thus achieving a presentation blending the new with the old.
Polymorphism considered harmful
In his influential letter "Go to statement considered harmful" [2], Edsger Dijkstra asserts that goto's make a program difficult to understand, and has had a fundamental influence on software engineering and programming language design.
Structured Programming with go to Statements
For serious students of structured programming, and also for language designers, Knuth's "Structured Programming with go to Statements" is probably the paper to read. It is by far the most complete
Review of Dynamic Logic (Foundations of Computing): authors of book: D. Harel, D. Kozen and J. Tiuryn
In the 1960s, as programming languages were being used to write larger programs, those programs became harder to understand, and people began to worry about issues such as correctness, that is,
Goto Statement Considered Harmful – A Paper Review
Although many computer scientists believe that goto can be useful in increasing the efficiency of a program, few are really convinced that the enhanced performance is worth the extra complexity.
The Translation of 'Go To' Programs to 'While' Programs
The subject of the Ashcroft and Manna paper is the translation of unstructured programs into equivalent structured programs, and Wulf's paper sets forth a more practical, step-by-step mechanism for such translations, giving an extremely detailed, extremely theoretical presentation.
An introduction to structured programming
In SP, control of program flow is restricted to three structures, sequence, IF THEN ELSE, and DO WHILE, or to a structure derivable from a combination of the basic three.
The anatomy of a loop: a story of scope and control
I present the design of a loop package for Scheme with a well-defined and natural scoping rule, based on a notion of control dominance that generalizes the standard lexical-scope rule of the λ-calculus.
An algorithm for structuring programs (Extended Abstract)
An algorithm which transforms a flowgraph into a program written using repeat (do forever) and if then else statements is described, which is to produce readable programs, rather than to avoid the use of goto statements entirely.
Eliminating go to's while preserving program structure
It can be shown that the reducibility of a program's augmented flow graph, augmenting edges and all, is a necessary and sufficient condition for the eliminability of go to's from that program under the stricter rules.


A contribution to the development of ALGOL
The main changes were: (1) verbal improvements and clarifications, many of which were kindly suggested by recipients of the original draft; (2) additional or altered language features, in particular the replacement of tree structures by records as proposed by the second author.
Flow diagrams, turing machines and languages with only two formation rules
In the first part of the paper, flow diagrams are introduced to represent inter ah mappings of a set into itself due to a suitable extension of the given set and of the basic mappings defined in it.
Further remark on reducing truncation errors
  • Comm . ACM