skip to main content
10.1145/800194.805861acmconferencesArticle/Chapter ViewAbstractPublication Pagesacm-national-conferenceConference Proceedingsconference-collections
Article
Free Access

A case against the GOTO

Published:01 August 1972Publication History

ABSTRACT

It has been proposed, by E. W. Dijkstra and others, that the goto statement in programming language is a principal culprit in programs which are difficult to understand, modify, and debug. More correctly, the argument is that it is possible to use the goto to synthesize program structures with these undesirable properties. Not all uses of the goto are to be considered harmful; however, it is further argued that the “good” uses of the gotofall into one of a small number of specific cases which may be handled by specific language constructs. This paper summarizes the arguments in favor of eliminating the goto statement and some of the theoretical and practical implications of the proposal.

References

  1. 1.Dijkstra, E. W., "Goto Statement Considered Harmful", Letter to the Editor, CACM, 11, 3, March 1968. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2.Dijkstra, E. W., "A constructive approach to the problem of program correctness", BIT 8, 1968.Google ScholarGoogle Scholar
  3. 3.Dijkstra, E. W., "Structured programming", Software Engineering, October 1969, Rome.Google ScholarGoogle Scholar
  4. 4.Dijkstra, E. W., "Notes on Structured Programming", August 1969.Google ScholarGoogle Scholar
  5. 5.Naur, P., "Proof of algorithms by general snapshots", BIT 6, 1966.Google ScholarGoogle Scholar
  6. 6.Naur, P., "Programming by action clusters", BIT 9, 1969.Google ScholarGoogle Scholar
  7. 7.Hoare, C. A. R., "Proof of a program FIND", CACM 14, 1, June 1971. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8.Wirth, N., "Program development by stepwise refinement", CACM, April 1971. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.Parnas, D. L., "Information distribution aspects of design methodology", IFIP, 1971.Google ScholarGoogle Scholar
  10. 10.King, J., A Program Verifier, Ph.D. Thesis, Carnegie-Mellon University, 1969. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.Manna, Z., Termination of Algorithms, Ph.D. Thesis, Carnegie-Mellon University, April 1968. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.Manna, Z., "The correctness problem of computer programs", Computer Science Research Review, 1968.Google ScholarGoogle Scholar
  13. 13.Van Wijngaarden, A., "Recursive Definition of Syntax and Semantics", in Formal Language Description Languages, (T. B. Steel, ed.), North-Holland Publishing Col, Amsterdam, 1966.Google ScholarGoogle Scholar
  14. 14.Knuth, Floyd, Notes on Avoiding 'GOTO' Statements, Technical Report CS 148, Stanford University, January 1970.Google ScholarGoogle Scholar
  15. 15.Ashcroft, E. and Manna, Z., "The translation of "goto" programs into "while" programs", IFIP, 1971.Google ScholarGoogle Scholar
  16. 16.Wulf, et al., Bliss Reference Manual, Computer Science Department Report, Carnegie-Mellon University.Google ScholarGoogle Scholar
  17. 17.Wulf, et al., "Bliss: a language for systems programming", CACM, December 1971. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18.Wulf, et al., "Reflections on a systems programming language", Proceedings of the SIGPLAN Symposium on Systems Implementation Languages, October 1971. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19.Wulf, W. A., "Programming without the goto", IFIP, 1971.Google ScholarGoogle Scholar
  20. 20.Lowery and Medlock, "Object code optimization", CACM, 12, 1, January 1969. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21.Böhm and Jacopini, "Flow diagrams, Turing machines, and languages with only two formation rules", CACM, 9, 5, May 1966. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22.Parnas, D., On the Criteria to be Used in De-composing Systems into Modules, Computer Science Department Report, Carnegie-Mellon University, 1971.Google ScholarGoogle Scholar
  23. 23.Manna, Z., Ness, S., and Vaillemin, J., "Inductive methods for proving properties of programs", SIGPLAN/SIGACT Conference on Proving Assertions about Programs, January 1972. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 24.Burstall, R., "An algebraic description of programs with assertions, verification and simulation", SIGPLAN/SIGACT Conference on Proving Assertions about Programs, January 1972. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A case against the GOTO

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      ACM '72: Proceedings of the ACM annual conference - Volume 2
      August 1972
      530 pages
      ISBN:9781450374927
      DOI:10.1145/800194

      Copyright © 1972 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 1 August 1972

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • Article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader