Book

Go To Statement Considered Harmful

by Edsger W. Dijkstra

Summary

Dijkstra's central thesis is that the unrestricted use of the `GOTO` statement in programming is a primary cause of incomprehensible and error-prone code. He argues that `GOTO` disrupts the logical flow of a program, making it difficult to reason about its state at any given point. This difficulty, he contends, directly leads to an increase in bugs and a decrease in programmer productivity.

The essay highlights the importance of structured programming, where control flow is managed through constructs like loops and conditional statements, creating clear, predictable execution paths. By avoiding `GOTO`, programmers can write programs that are easier to understand, debug, and maintain. The takeaway is that disciplined control flow is essential for writing robust and reliable software.

Full text isn't indexed yet — this overview draws on general knowledge of the book and its metadata, and chat works the same way.

Key concepts

  • `GOTO` statementA programming language command that transfers program control to a specified line number or label, regardless of the normal sequential execution.
  • Structured programmingA programming paradigm that emphasizes the use of control flow statements like `IF-THEN-ELSE`, `WHILE` loops, and `FOR` loops, avoiding unstructured jumps.
  • Program clarityThe degree to which the logic and execution flow of a program are easy for a human to understand.
  • DebuggingThe process of identifying and removing errors (bugs) from computer programs.