Letters to the editor: go to statement considered harmful

  title={Letters to the editor: go to statement considered harmful},
  author={E. Dijkstra},
  journal={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… Expand
Regular Expressions for Program Computations
In the brief history of computer science, no single article has attracted more attention nor stirred more controversy than a seemingly innocuous 1968 letter to the editor (of the Communications ofExpand
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. Expand
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 completeExpand
To use or not to use the goto statement: Programming styles viewed from Hoare Logic
It is shown that, in two cases, the with-Goto programming styles are more suitable for proving correctness in Hoare Logic than the corresponding without-goto ones; that is, in each of two cases the without- goto style requires more complicated assertions in the proof-outline than the with -goto one. Expand
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,Expand
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. Expand
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. Expand
"Structured programming" considered harmful
The problem with "structured programming" lies not so much in its content as in its sociology, the elevation of good heuristics into bad dogma, and the creation of the illusion that difficult problems are easy. Expand
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. Expand
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. Expand


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. Expand
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. Expand
Further remark on reducing truncation errors
  • Comm . ACM