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.
- 1.Dijkstra, E. W., "Goto Statement Considered Harmful", Letter to the Editor, CACM, 11, 3, March 1968. Google ScholarDigital Library
- 2.Dijkstra, E. W., "A constructive approach to the problem of program correctness", BIT 8, 1968.Google Scholar
- 3.Dijkstra, E. W., "Structured programming", Software Engineering, October 1969, Rome.Google Scholar
- 4.Dijkstra, E. W., "Notes on Structured Programming", August 1969.Google Scholar
- 5.Naur, P., "Proof of algorithms by general snapshots", BIT 6, 1966.Google Scholar
- 6.Naur, P., "Programming by action clusters", BIT 9, 1969.Google Scholar
- 7.Hoare, C. A. R., "Proof of a program FIND", CACM 14, 1, June 1971. Google ScholarDigital Library
- 8.Wirth, N., "Program development by stepwise refinement", CACM, April 1971. Google ScholarDigital Library
- 9.Parnas, D. L., "Information distribution aspects of design methodology", IFIP, 1971.Google Scholar
- 10.King, J., A Program Verifier, Ph.D. Thesis, Carnegie-Mellon University, 1969. Google ScholarDigital Library
- 11.Manna, Z., Termination of Algorithms, Ph.D. Thesis, Carnegie-Mellon University, April 1968. Google ScholarDigital Library
- 12.Manna, Z., "The correctness problem of computer programs", Computer Science Research Review, 1968.Google Scholar
- 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 Scholar
- 14.Knuth, Floyd, Notes on Avoiding 'GOTO' Statements, Technical Report CS 148, Stanford University, January 1970.Google Scholar
- 15.Ashcroft, E. and Manna, Z., "The translation of "goto" programs into "while" programs", IFIP, 1971.Google Scholar
- 16.Wulf, et al., Bliss Reference Manual, Computer Science Department Report, Carnegie-Mellon University.Google Scholar
- 17.Wulf, et al., "Bliss: a language for systems programming", CACM, December 1971. Google ScholarDigital Library
- 18.Wulf, et al., "Reflections on a systems programming language", Proceedings of the SIGPLAN Symposium on Systems Implementation Languages, October 1971. Google ScholarDigital Library
- 19.Wulf, W. A., "Programming without the goto", IFIP, 1971.Google Scholar
- 20.Lowery and Medlock, "Object code optimization", CACM, 12, 1, January 1969. Google ScholarDigital Library
- 21.Böhm and Jacopini, "Flow diagrams, Turing machines, and languages with only two formation rules", CACM, 9, 5, May 1966. Google ScholarDigital Library
- 22.Parnas, D., On the Criteria to be Used in De-composing Systems into Modules, Computer Science Department Report, Carnegie-Mellon University, 1971.Google Scholar
- 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 ScholarDigital Library
- 24.Burstall, R., "An algebraic description of programs with assertions, verification and simulation", SIGPLAN/SIGACT Conference on Proving Assertions about Programs, January 1972. Google ScholarDigital Library
Index Terms
- A case against the GOTO
Recommendations
A case against the GOTO
Special issue on control structures in programming languagesIt has been proposed, by E. W. Dijkstra and others, that the <u>goto</u> statement in programming langauge is a principal culprit in programs which are difficult to understand, modify, and debug. More correctly, the argument is that it is possible to ...
Programming with(out) the GOTO
ACM '72: Proceedings of the ACM annual conference - Volume 2A brief history of the goto controversy (retention or deletion of the goto statement) is presented. After considering some of the theoretical and practical aspects of the problem, a summary of arguments both for and against the goto is given.
Programming with(out) the GOTO
Special issue on control structures in programming languagesA brief history of the <u>goto</u> controversy (retention or deletion of the <u>goto</u> statement) is presented. After considering some of the theoretical and practical aspects of the problem, a summary of arguments both for and against the <u>goto</u> ...
Comments