Advertisement

The Algol Research Programme

  • Mark PriestleyEmail author
Part of the History of Computing book series (HC)

Abstract

Compared to some of the other early programming languages, Algol 60 was not particularly successful in practical terms. This fact presents something of a puzzle: how did a language which was a relative failure in practical terms later come to be regularly described as the most influential of early programming languages? This chapter suggests an answer to this question, arguing that what changed the face of programming was not simply the Algol 60 language, but rather a coherent and comprehensive research programme within which the Algol 60 report had the status of a paradigmatic achievement, in the sense defined by the historian of science Thomas Kuhn. This research programme established the first theoretical framework for studying not only the design of programming languages, but also the process of software development, the subject of the next chapter.

Keywords

Programming Language Control Structure Data Item Data Space Database Schema 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  1. ACM: Proceedings of the ACM Programming Languages and Pragmatics Conference, San Dimas, California, 8–12 August 1965. Commun. ACM 9(3), 137–232 (1966) Google Scholar
  2. Akera, A.: Voluntarism and the fruits of collaboration: the IBM user group, Share. Technol. Cult. 42(4), 710–736 (2001) CrossRefGoogle Scholar
  3. Bachman, C.W.: The programmer as navigator. Commun. ACM 16(11), 653–658 (1973) CrossRefGoogle Scholar
  4. Backus, J.W.: The syntax and semantics of the proposed international algebraic language of the Zurich ACM-GAMM conference (1959). In: Proceedings of the International Conference on Information Processing, Unesco, Paris, 15–20 June 1959, pp. 125–132. Unesco, Oldenbourg and Butterworths, Paris, Munich, London (1960) Google Scholar
  5. Barron, D.W., Buxton, J.N., Hartley, D.F., Nixon, E., Strachey, C.: The main features of CPL. Comput. J. 6(2), 134–143 (1963) zbMATHCrossRefGoogle Scholar
  6. Bemer, R.W.: A politico-social history of Algol. In: Halpern, M.I., Shaw, C.J. (eds.) Annual Review in Automatic Programming, vol. 5, pp. 152–237. Pergamon, Elmsford (1969) Google Scholar
  7. Böhm, C., Jacopini, G.: Flow diagrams, Turing machines and languages with only two formation rules. Commun. ACM 9(5), 366–371 (1966) zbMATHCrossRefGoogle Scholar
  8. Bosak, R., Clippinger, R.F., Dobbs, C., Goldfinger, R., Jasper, R.B., Keating, W., Kendrick, G., Sammet, J.E.: An information algebra. Commun. ACM 5(4), 190–204 (1962) CrossRefGoogle Scholar
  9. CODASYL Data Base Task Group: Data base task group report to the CODASYL programming language committee. Technical Report, General Electric Research and Development Center, October 1969 Google Scholar
  10. Codd, E.F.: A relational model of data for large shared data banks. Commun. ACM 13(6), 377–387 (1970) zbMATHCrossRefGoogle Scholar
  11. Colilla, R.A., Sams, B.H.: Information structures for processing and retrieving. Commun. ACM 5(1), 11–16 (1962) CrossRefGoogle Scholar
  12. Dijkstra, E.W.: An attempt to unify the constituent concepts of serial program execution (1962a). In: Symbolic Languages in Data Processing: Proceedings of the Symposium Organized and Edited by the International Computation Centre, Rome, 26–31 March 1962, pp. 237–251. Gordon and Breach, New York (1962) Google Scholar
  13. Dijkstra, E.W.: Some meditations on advanced programming (1962b). In: Popplewell, C.M. (ed.) Information Processing 1962: Proceedings of IFIP Congress, vol. 62, pp. 535–538. North-Holland, Amsterdam (1963) Google Scholar
  14. Dijkstra, E.W.: On the design of machine independent programming languages (1963). In: Goodman, R. (ed.) Annual Review in Automatic Programming, vol. 3, pp. 27–42. Pergamon, Elmsford (1963) Google Scholar
  15. Dijkstra, E.W.: Programming considered as a human activity (1965). In: Kalenich, W.A. (ed.) Information Processing 1965: Proceedings of IFIP Congress, vol. 65, pp. 213–217. Spartan Books, Washington (1965) Google Scholar
  16. Dijkstra, E.W.: Go to statement considered harmful. Commun. ACM 11(3), 147–148 (1968b) MathSciNetCrossRefGoogle Scholar
  17. Dijkstra, E.W.: Structured programming. In: Buxton, J.N., Randell, B. (eds.) Software Engineering Techniques: Report on a Conference Sponsored by the NATO Science Committee, Rome, Italy, 27th to 31st October 1969, pp. 84–88. NATO (1969b) Google Scholar
  18. Dijkstra, E.W.: Notes on structured programming (1972). In: Dahl, O.-J. et al. (eds.) Structured Programming, pp. 1–82. Academic Press, San Diego (1972) Google Scholar
  19. Earley, J.: Toward an understanding of data structure. Commun. ACM 14(10), 617–627 (1971) zbMATHCrossRefGoogle Scholar
  20. Elgot, C.C., Robinson, A.: Random-access stored-program machines, an approach to programming languages. J. Assoc. Comput. Mach. 11(4), 365–399 (1964) MathSciNetCrossRefGoogle Scholar
  21. Feldman, J.A.: A formal semantics for computer languages and its application in a compiler-compiler. Commun. ACM 9(1), 3–9 (1966) zbMATHCrossRefGoogle Scholar
  22. Floyd, R.W.: The syntax of programming languages—a survey. IEEE Trans. Electron. Comput. EC-13(4), 346–353 (1964) CrossRefGoogle Scholar
  23. Floyd, R.W.: Assigning meanings to programs. In: Schwartz, J.T. (ed.) Mathematical Aspects of Computer Science. Proceedings of Symposia in Applied Mathematics, vol. XIX, pp. 19–32. American Mathematical Society, Providence (1967) CrossRefGoogle Scholar
  24. Garwick, J.V.: The definition of programming languages by their compilers (1964). In: Steel, T.B. (ed.) Formal Language Description Languages for Computer Programming, pp. 139–147. North-Holland, Amsterdam (1966) Google Scholar
  25. Gilmore, P.C.: An abstract computer with a Lisp-like machine language without a label operator. In: Braffort, P., Hirschberg, D. (eds.) Computer Programming and Formal Systems, pp. 71–86. North-Holland, Amsterdam (1963) CrossRefGoogle Scholar
  26. Gorn, S.: Some basic terminology connected with mechanical languages and their processors. Commun. ACM 4(8), 336–339 (1961) zbMATHCrossRefGoogle Scholar
  27. Gorn, S.: Theory of mechanical languages. Commun. ACM 5(1), 62 (1962) CrossRefGoogle Scholar
  28. Green, J., Shapiro, R.M., Helt, F.R. Jr., Franciotti, R.G., Theil, E.H.: Remarks on Algol and symbol manipulation. Commun. ACM 2(9), 25–27 (1959) zbMATHCrossRefGoogle Scholar
  29. Hamblin, C.L.: Computer languages. Aust. J. Sci. 20(5), 135–139 (1957) MathSciNetGoogle Scholar
  30. Hoare, C.A.R.: Record handling. In: Genuys, F. (ed.) Programming Languages, pp. 291–347. Academic Press, San Diego (1968) Google Scholar
  31. Hoare, C.A.R.: A note on the for statement. BIT Numer. Math. 12, 334–341 (1972a) zbMATHCrossRefGoogle Scholar
  32. Hoare, C.A.R.: Notes on data structuring (1972b). In: Structured Programming, pp. 83–173. Academic Press, San Diego (1972) Google Scholar
  33. International Computation Center: Symbolic Languages in Data Processing: Proceedings of the Symposium Organized and Edited by the International Computation Centre, Rome, 26–31 March 1962. Gordon and Breach, New York (1962) Google Scholar
  34. Irons, E.T.: A syntax directed compiler for ALGOL 60. Commun. ACM 4(1), 51–55 (1961) zbMATHCrossRefGoogle Scholar
  35. Kuhn, T.S.: The Structure of Scientific Revolutions. University of Chicago Press, Chicago (1962) Google Scholar
  36. Landin, P.J.: The mechanical evaluation of expressions. Comput. J. 6(4), 308–320 (1964) zbMATHCrossRefGoogle Scholar
  37. Landin, P.J.: A correspondence between ALGOL 60 and Church’s lambda-notation: Part I. Commun. ACM 8(2), 89–101 (1965a) MathSciNetzbMATHCrossRefGoogle Scholar
  38. Landin, P.J.: A correspondence between ALGOL 60 and Church’s lambda-notation: Part II. Commun. ACM 8(3), 158–165 (1965b) MathSciNetCrossRefGoogle Scholar
  39. Landin, P.J.: The next 700 programming languages. Commun. ACM 9(3), 157–166 (1966) zbMATHCrossRefGoogle Scholar
  40. Lombardi, L.: Theory of files. In: Proceedings of the Eastern Joint Computer Conference, pp. 137–141 (1960) Google Scholar
  41. Lucas, P.: Formal definition of programming languages and systems (1972). In: Freiman, C.V. (ed.) Information Processing 71: Proceedings of the IFIP Congress, vol. 71, pp. 291–297. North-Holland, Amsterdam (1972) Google Scholar
  42. Lucas, P., Walk, K.: On the formal description of PL/I. Annu. Rev. Autom. Program. 6(3), 105–182 (1969) CrossRefGoogle Scholar
  43. McCarthy, J.: Recursive functions of symbolic expressions and their computation by machine, part I. Commun. ACM 3(4), 184–195 (1960) zbMATHCrossRefGoogle Scholar
  44. McCarthy, J.: A basis for a mathematical theory of computation, preliminary report. In: Proceedings of the Western Joint Computer Conference, pp. 225–238 (1961) Google Scholar
  45. McCarthy, J.: Towards a mathematical science of computation (1962). In: Popplewell, C.M. (ed.) Information Processing 1962: Proceedings of IFIP Congress, vol. 62, pp. 21–28. North-Holland, Amsterdam (1963) Google Scholar
  46. McCarthy, J.: A basis for a mathematical theory of computation (1963a). In: Braffort, P., Hirschberg, D. (eds.) Computer Programming and Formal Systems, pp. 33–70. North-Holland, Amsterdam (1963). Corrected and extended version of McCarthy (1961) Google Scholar
  47. McCarthy, J.: General discussion (1963b). Quoted in Gorn (1964) Google Scholar
  48. McCarthy, J.: Problems in the theory of computation (1965). In: Kalenich, W.A. (ed.) Information Processing 1965: Proceedings of IFIP Congress, vol. 65, pp. 219–222. Spartan Books, Washington (1965) Google Scholar
  49. McCarthy, J.: A formal description of a subset of ALGOL (1964). In: Steel, T.B. (ed.) Formal Language Description Languages for Computer Programming, pp. 1–12. North-Holland, Amsterdam (1966) Google Scholar
  50. Morris, C.W.: Foundations of the Theory of Signs. International Encyclopedia of Unified Science, vol. I(2). University of Chicago Press, Chicago (1938) Google Scholar
  51. Naur, P. (ed.): ALGOL-Bulletin No. 1. Regnecentralen, Copenhagen (1959) Google Scholar
  52. Naur, P. (ed.): ALGOL-Bulletin No. 15. Regnecentralen, Copenhagen (1962) Google Scholar
  53. Newell, A., Tonge, F.M.: An introduction to Information Processing Language V. Commun. ACM 3(4), 205–211 (1960) MathSciNetzbMATHCrossRefGoogle Scholar
  54. Pickering, A.: The Mangle of Practice: Time, Agency and Science. University of Chicago Press, Chicago (1995) zbMATHCrossRefGoogle Scholar
  55. Popplewell, C.M. (ed.): Information Processing 1962: Proceedings of IFIP Congress, vol. 62. North-Holland, Amsterdam (1963) zbMATHGoogle Scholar
  56. Radin, G., Rogoway, H.P.: NPL: highlights of a new programming language. Commun. ACM 8(1), 9–17 (1965) zbMATHCrossRefGoogle Scholar
  57. Rochester, N., Goldfinger, R.: The special issue on computer languages—editorial. IEEE Trans. Electron. Comput. EC-13(4), 343 (1964) CrossRefGoogle Scholar
  58. Ross, D.T.: A generalized technique for symbol manipulation and numerical calculation. Commun. ACM 4(3), 147–150 (1961) zbMATHCrossRefGoogle Scholar
  59. Ross, D.T., Rodriguez, J.E.: Theoretical foundations for the computer-aided design system. In: Proceedings of the 1963 Spring Joint Computer Conference. AFIPS Conference Proceedings, vol. 23, pp. 305–322. Spartan Books, Inc., Cleaver-Hume Press, Baltimore, London (1963) Google Scholar
  60. Sammet, J.E.: Basic elements of COBOL 61. Commun. ACM 5(5), 237–253 (1962) zbMATHCrossRefGoogle Scholar
  61. Steel, T.B. (ed.): Formal Language Description Languages for Computer Programming. North-Holland, Amsterdam (1966) zbMATHGoogle Scholar
  62. Strachey, C.: Contribution to panel discussion on metasyntactic and metasemantic languages (1962). In: Symbolic Languages in Data Processing: Proceedings of the Symposium Organized and Edited by the International Computation Centre, Rome, 26–31 March 1962, pp. 99–110. Gordon and Breach, New York (1962) Google Scholar
  63. Strachey, C.: Towards a formal semantics (1964). In: Steel, T.B. (ed.) Formal Language Description Languages for Computer Programming, pp. 198–220. North-Holland, Amsterdam (1966) Google Scholar
  64. Strachey, C.: Fundamental concepts in programming languages (1967). Unpublished lecture notes, International Summer School in Computer Programming, Copenhagen. Published as Strachey (2000) Google Scholar
  65. Tennent, R.D.: The denotational semantics of programming languages. Commun. ACM 19(8), 437–543 (1976) MathSciNetzbMATHCrossRefGoogle Scholar
  66. van der Poel, W.L.: Some notes on the history of ALGOL. In: Zemanek, H. (ed.) A Quarter Century of IFIP, pp. 373–392. Elsevier, Amsterdam (1986) Google Scholar
  67. van Wijngaarden, A.: Generalized ALGOL (1962). In: Symbolic Languages in Data Processing: Proceedings of the Symposium Organized and Edited by the International Computation Centre, Rome, 26–31 March 1962, pp. 409–419. Gordon and Breach, New York (1962) Google Scholar
  68. Wegner, P.: Operational semantics of programming languages. ACM SIGPLAN Not. 7(1), 128–141 (1972) CrossRefGoogle Scholar
  69. Wexelblat, R.L. (ed.): History of Programming Languages. Academic Press, San Diego (1981). From the ACM SIGPLAN History of Programming Languages Conference, 1–3 June 1978 zbMATHGoogle Scholar
  70. Wirth, N.: The programming language Pascal. Acta Inform. 1, 35–63 (1971b) zbMATHCrossRefGoogle Scholar
  71. Wirth, N., Hoare, C.A.R.: A contribution to the development of ALGOL. Commun. ACM 9(6), 413–432 (1966) zbMATHCrossRefGoogle Scholar
  72. Zemanek, H.: Semiotics and programming languages. Commun. ACM 9(3), 139–143 (1966) zbMATHCrossRefGoogle Scholar

Copyright information

© Springer-Verlag London Limited 2011

Authors and Affiliations

  1. 1.LondonUK

Personalised recommendations