Nothing Special   »   [go: up one dir, main page]

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

Programming with(out) the GOTO

Published: 01 August 1972 Publication History

Abstract

A 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.

References

[1]
Ashcroft, Edward and Manna, Zohar. "The translation of 'goto' programs to 'while' programs". Proc. IFIP Congress 71, Ljubljana, Aug. 1971.
[2]
de Bakker, J. W. "Semantics of programming languages". Advances in Information Systems Science 2 (Ed. Tou, J.T.) Plenum Press, New York, 1969.
[3]
Barron, D.W. Recursive Techniques in Programming. American Elsevier, New York, 1968.
[4]
Barron, D.W. and Strachey, C. "Programming". Advances in Programming and Non-Numerical Computation. (Ed. Fox, L.), Pergamon Press, New York, 1966.
[5]
Berry, D. M. "Introduction to Oregano". Proc. Symposium on Data Structures in Programming Languages, SIGPLAN Notices 6,2 (Feb. 1971).
[6]
Black, Fischer. "Styles of programming in LISP" The Programming Language LISP: Its Operation and Applications (Ed. Berkeley and Bobrow), Information International, Cambridge, Mass. 1964.
[7]
Bohm, Corrado and Jacopini, Giuseppe. "Flow diagrams, Turing machines and languages with only two formation rules". CACM 9 (May 1966).
[8]
Burge, W.H. "The evaluation, classification and interpretation of expressions". Proc. ACM 19th National Conf. 1964.
[9]
Burge, W.H. "Notes on a model for programming systems: Part I". Report RC 2188 (Aug. 1968). IBM Research Division, Yorktown Heights, N.Y.
[10]
Burstall, R.M. "Writing search algorithms in functional form" Machine Intelligence 3 (Ed. Michie, D.) Edinburgh Univ. Press, Edinburgh, 1968.
[11]
Burstall, R.M. "Proving properties of programs by structural induction", Computer Journal 12,1 (Feb. 1969).
[12]
Burstall, R.M. and Popplestone, R.J. "POP-2 reference manual" Machine Intelligence 2 (Ed. Dale & Michie), American Elsevier, New York 1968.
[13]
Burstall, R.M. and Landin, P. J. "Programs and their proofs: an algebraic approach", Machine Intelligence 4 (Eds. Meltzer & Michie) Edinburgh Univ. Press, Edinburgh, 1969.
[14]
Caracciolo di Forino, A., Spanedda, L. and Wolkenstein, N. "PANON-1B: A programming language for symbol manipulation", Calcolo, Vol. 3, 1966.
[15]
Caracciolo di Forino, A. "Generalized Markov algorithms and automata", Automata Theory (Ed. Caianiello, E. R.), Academic Press, New York, 1966.
[16]
Christenson, Carlos, "Examples of symbol manipulation in the AMBIT programming language". Proc. ACM 20th National Conf., Cleveland, Ohio, Aug. 1965.
[17]
Church, A., "The calculi of lambda-con-version", Annals of Math. Studies No. 6, Princeton Univ. Press, Princeton, New Jersey (1951).
[18]
Cohen, K. and Wegstein, J. H., "AXLE, an axiomatic language for string transformations", CACM 8, (1965), 657-661.
[19]
Cooper, D. C. "On the equivalence of certain computations". Computer Journal 9 (1966), 45-52.
[20]
Cooper, D. C. "Reduction of programs to a standard form by graph transformation", Theory of Graphs, International Symposium, Rome 1966 (Ed. Rosenstiehl, P.), Gordon and Breach, New York, 1967.
[21]
Cooper, D. C. "Bohm and Jacopini's reduction of flow charts". Letter to the Editor, CACM 10 (Aug. 1967).
[22]
Cooper, D. C. "Some transformations and standard forms of graphs, with applications to computer programs", Machine Intelligence 2 (Ed. Dale & Michie), American Elsevier, New York, 1968.
[23]
Coulouris, G. F. "Principles for implementing useful subsets of advanced programming languages", Machine Intelligence 1 (Ed. Collins & Michie), Oliver & Boyd, Edinburgh, 1967.
[24]
Curry, H. and Feys, R. Combinatory Logic, Vol. 1, North-Holland, Amsterdam, 1958.
[25]
Dijkstra, E. W., "An attempt to modify the constituent concepts of serial program execution", Proc. ICC Symposium on Symbolic Languages in Data Processing, Gordon & Breach, New York, 1962.
[26]
Dijkstra, E. W. "Programming considered as a human activity", Proceedings IFIP Congress 65, edited by W. A. Kalenich, Spartan Books, Washington, D. C., 1965.
[27]
Dijkstra, E. W. "Recursive programming", Programming Systems and Languages (Ed. Rosen, S.), McGraw-Hill, New York 1967.
[28]
Dijkstra, E. W. "Go to statement considered harmful", Letter to the Editor, CACM 11 (March 1968).
[29]
Dijkstra, E. W. "A constructive approach to the problem of program correctness", BIT 8 (1968).
[30]
Dijkstra, E. W. "Notes on structured programming", EWD 249, Technical University, Eindhoven, Netherlands, 1969.
[31]
Ershov, A. P. "Theory of program schemata", Proc. IFIP Congress 71, Ljubljana, Aug. 1971.
[32]
Farber, D. J., Griswold, R. E. and Polonsky, I.P. "SNOBOL, a string manipulation language", JACM 11 (January 1964).
[33]
Fisher, David A. "Control structures for progrmmming languages", PhD. Thesis, Carnegie-Mellon Univ., Pittsburgh, Pa., May 1970.
[34]
Floyd, R. W. "A descriptive language for symbol manipulation", JACM 8,4 (1961).
[35]
Floyd, R. W. "Nondeterministic algorithms", JACM 14 (Oct. 1967).
[36]
Floyd, R. W. "Assigning meanings to programs", Proc. Symp. Applied Math., AMS Vol. 19, 1967.
[37]
Galler, B. A. and Fischer, M.J. "The iteration element", CACM 8 (June 1965).
[38]
Galler, B. A. and Perlis, A. J. A View of Programming Languages, Addison-Wesley, Reading, Mass., 1970.
[39]
Gilmore, P.C. "An abstract computer with LISP-like machine language without a label operator", Computer Programming and Formal Systems (Eds. Braffort & Hirschberg), North-Holland, Amsterdam, 1963.
[40]
Goodstein, R. L. Recursive Analysis, North-Holland, Amsterdam, 1961.
[41]
Griswold, R. E. Poage, J. F. and Polonsky, I. P. The SNOBOL4 Programming Language, Prentice-Hall, Englewood Cliffs, N.J. 1968.
[42]
Guzman, Adolfo and McIntosh, H. "CONVERT", CACM 9 (Aug. 1966).
[43]
Hopkins, Martin, "A case for the goto", Proceedings ACM '72, Boston, August 1972.
[44]
Ianov, Y. I. "On the equivalence and transformation of program schemes", CACM 1 (1958), 8-12.
[45]
Ianov, I. "The logical schemes of algorithms", Problems of Cybernetics I (English translation) Pergamon Press, Oxford 1960, 82-140.
[46]
Johansen, Peter, "Non-deterministic programming", BIT 7 (1967), 289-304.
[47]
Johnston, John B. "The contour model of block structured processes", Proc. Symposium on Data Structures in Programming Languages, SIGPLAN Notices 6,2 (Feb. 1971).
[48]
Kleene, S. C, Introduction to Metamathematics, Van Nostrand, New York, 1952.
[49]
Knuth, D. E. and Floyd, R. W. "Notes on avoiding 'goto' statements", Information Processing Letters 1, North-Holland, Amsterdam (1971), 23-31.
[50]
Landin, P. J. "The mechanical evaluation of expressions", Computer Journal 6,4 (1964).
[51]
Landin, P. J. "A correspondence between ALGOL 60 and Church's lambda-notation", CACM 8,2 and 3 (1965).
[52]
Landin, P. J. "The next 700 programming languages", CACM 9 (March 1966).
[53]
Leavenworth, B. M. "The definition of control structures in MCG360". Report RC2376 (Feb. 1969). IBM Research Division, Yorktown Heights, N.Y.
[54]
Ledgard, H. F. "Ten mini-languages: A study of topical issues in programming languages", ACM Computing Surveys, 3,3 (Sept. 1971).
[55]
Lucas, P. et al "Method and notation for the formal definition of programming languages", Tech. Report TR 25.087, IBM Laboratory, Vienna, 1968.
[56]
Luckham, D. C., Park, D.M.R. and Paterson, M.S., "On formalized computer programs", Journal of Computer and System Sciences, June 1970.
[57]
Markov, A.A. "The theory of algorithms" (Russian Translation), U.S. Dept. of Commerce, Office of Technical Services No. OTS 60-51085.
[58]
McCarthy, J. et al, LISP 1.5 Programmers Manual, The M.I.T. Press, Cambridge, Mass. 1962.
[59]
McCarthy, J. "Towards a mathematical science of computation", Proc. IFIP Congress, Munich 1962, North-Holland, Amsterdam.
[60]
McCarthy, J. "Basis for a mathematical theory of computation", Computer Programming and Formal Systems (Eds. Braffort & Hirschberg), North-Holland, Amsterdam, 1963.
[61]
Mills. H. "Top down programming in large systems", Debugging Techniques in. Large Systems (Ed. Rustin, Randall), Prentice-Hall, Englewood Cliffs, N.J. 1971.
[62]
Minsky, M. L. Computation: Finite and Infinite Machines, Prentice-Hall, Englewood Cliffs, N.J. 1967.
[63]
Mooers, C. N. and Deutsch, L.P. "TRAC: A text handling language", Proc. ACM 20th National Conf.Cleveland, Ohio (Aug. 1965).
[64]
Naur, P. "Proof of algorithms by general snapshots", BIT 6, 1966.
[65]
Naur, P. "Programming by action clusters", BIT 9, 1969.
[66]
Paterson, M. S. "Program schemata", Machine Intelligence 3 (Ed. Michie, D.), Edinburgh Univ. Press, Edinburgh, 1968.
[67]
Paterson, M.S. and Hewitt, C. E. "Comparative schematology", Proj. MAC Conference on Concurrent Systems and Parallel Computation (June 1970), ACM, New York, 1970.
[68]
Perlis, A.J., Lecture Notes on Seminar on Extensible Languages. Carnegie-Mellon University, Fall, 1968.
[69]
Peter, Rozsa. Recursive Functions, Academic Press, New York, 1967.
[70]
Post, E. I. "Finite combinatory processes - formulation I", Journal of Symbolic Logic, Vol. 1,(1936).
[71]
Reynolds, J.C. "GEDANKEN: A simple typeless language based on the principle of completeness and the reference concept", CACM 13 (May 1970).
[72]
Rice, H. G. "Recursion and iteration", CACM 8 (Feb. 1965).
[73]
Rice, J.R. "The goto statement reconsidered", Letter to the Editor, CACM 11 (1968) 538.
[74]
Rutledge, J.D. "On Ianov's program schemata", JACM 11 (1964), 1-9.
[75]
Schorre, D.V. "Improved organization for procedural languages", Technical Memo, August 1966, System Development Corp., Santa Monica, Calif.
[76]
Shepherdson, J.C. and Sturgis, H.E. "Comput-ability of recursive functions", JACM 10,2 (1963).
[77]
Stark, R. "A language for algorithms", Computer Journal, Vol. 14, No. 1 (Feb. 1971).
[78]
Strachey, C. "A general purpose macrogenerator", Computer Journal Vol. 8, (Oct. 1965).
[79]
Strachey, C. "Fundamental concepts in programming languages", NATO Conf., Copenhagen 1967.
[80]
Strong, H. R., Jr. "Translating recursion equations into flow charts", Journal of Computer and System Sciences, 5,3 (June 1971).
[81]
Turing, A.M. "On computable numbers with an application to the Entscheidungsproblem", Proc.London Math. Soc., ser. 2, Vol. 42 (1936-1937).
[82]
Van Wijngaarden, A. "Recursive definition syntax and semantics", Formal Language Description Languages for Computer Programming, edited by T.B. Steel, Jr., North-Holland, Amsterdam, 1966.
[83]
Wang, H. "A variant to Turing's theory of computing machines", JACM 4,1 (1957).
[84]
Wegbreit, B. "Studies in extensible programming languages", ESD-TR-70-297, Directorate of Systems Design & Development, L. G. Hanscom Field, Bedford, Mass., May 1970.
[85]
Wirth, Niklaus and Hoare, C.A.R. "A contribution to the development of ALGOL", CACM 9 (June 1966).
[86]
Wirth, N. "On certain basic concepts of programming languages", Computer Science Technical Report No. CS65, Stanford University, 1967.
[87]
Wirth, N. "Program development by stepwise refinement", CACM 14 (April 1971).
[88]
Wozencraft, J. M. and Evans, A. Jr., "Notes on programming linguistics", Dept. of Electrical Engineering, MIT, Cambridge, Mass., Feb. 1971.
[89]
Wulf, W. A. "Programming without the goto", Proc. IFIP Congress 71, Ljubljana, Aug. 1971.
[90]
Wulf, W. A. Russell, D.B. and Habermann, A.N. "BLISS: a language for systems programming", CACM 14 (Dec. 1971).
[91]
Wulf, W. A. "A case against the goto". Proceedings ACM '72, Boston, August 1972.
[92]
Yngve, V. H. Computer Programming with COMIT II, The M.I.T. Press, Cambridge, Mass. 1972.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

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
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 August 1972

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Combinatory logic
  2. Computability theory
  3. Control structures
  4. Goto statement
  5. Goto-less programming
  6. Lambda calculus
  7. Markov algorithms
  8. Post systems
  9. Structured programming
  10. Turing machines

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)72
  • Downloads (Last 6 weeks)9
Reflects downloads up to 20 Dec 2024

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media