Advertisement

The Invention of Programming Languages

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

Abstract

It quickly became apparent that the task of creating machine code programs was one that most humans would find challenging, and techniques for simplifying and automating parts of this process were soon developed. By the end of the 1950s, many programming systems existed, mostly designed for and implemented on a single type of computer. A number of groups had discovered the benefits of sharing code and the necessity of running programs on more that one type of computer, but the existence of machine-specific programming notations made these tasks difficult. This situation gave rise to a number of initiatives aimed at developing a universal programming notation, the best-known and most influential of which was the Algol 60 language. This chapter examines developments in programming notations during the 1950s, culminating in the proposals for the Algol language, and the parallel evolution of theoretical accounts of programming notations.

References

  1. Backus, J.W.: The IBM 701 speedcoding system. J. Assoc. Comput. Mach. 1(1), 4–6 (1954) CrossRefGoogle Scholar
  2. Backus, J.W.: Automatic programming: properties and performance of FORTRAN systems I and II (1958). In: Mechanisation of Thought Processes: Proceedings of a Symposium held at the National Physical Laboratory, 24th, 25th, 26th and 27th November 1958, pp. 231–248. National Physical Laboratory, HMSO, London (1959) Google Scholar
  3. 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
  4. Backus, J.W.: Programming in America in the 1950s—some personal impressions (1980). In: Metropolis, N., Howlett, J., Rota, G.-C. (eds.) A History of Computing in the Twentieth Century. Academic Press, San Diego (1980) Google Scholar
  5. Backus, J.W.: ALGOL session: transcript of question and answer session (1981a). In: Wexelblat, R.L. (ed.) History of Programming Languages, p. 162. Academic Press, San Diego (1981) Google Scholar
  6. Backus, J.W.: The history of FORTRAN I, II and III (1981b). In: Wexelblat, R.L. (ed.) History of Programming Languages, pp. 25–45. Academic Press, San Diego (1981) Google Scholar
  7. Backus, J.W., Heising, W.P.: FORTRAN. IEEE Trans. Electron. Comput. EC-13(4), 382–385 (1964) CrossRefGoogle Scholar
  8. Baker, C.L.: The PACT I coding system for the IBM Type 701. J. Assoc. Comput. Mach. 3(4), 272–278 (1956) CrossRefGoogle Scholar
  9. Barcan Marcus, R.: Interpreting quantification. Inquiry 5, 252–9 (1962) CrossRefGoogle Scholar
  10. Bauer, F.L.: Appendix 5 to Naur (1981): Notes by F.L. Bauer. In: Wexelblat, R.L. (ed.) History of Programming Languages, pp. 127–130. Academic Press, San Diego (1981) Google Scholar
  11. Bauer, F.L., et al.: Letter from GAMM members to Prof. John Carr, III, President of ACM (1957). Reprinted in Bemer, pp. 160–161 (1969) Google Scholar
  12. Bemer, R.W.: Automatic programming systems. Commun. ACM 2(5), 16 (1959) Google Scholar
  13. Bennett, J.M., Prinz, D.G., Woods, M.L.: Interpretative sub-routines (1952). In: Forrester, J.W., Hamming, R.W. (eds.) Proceedings of the 1952 ACM National Meeting, Toronto, pp. 81–87 (1952) Google Scholar
  14. Booth, A.D.: Opening address (1960). In: Goodman, R. (ed.) Annual Review in Automatic Programming, I. Working Conference on Automatic Programming of Digital Computers held at Brighton, 1–3 April 1959, pp. 1–7. Pergamon, Elmsford (1960) Google Scholar
  15. Brooker, R.A., Wheeler, D.J.: Floating operations on the EDSAC. Math. Tables Other Aids Comput. 7(41), 37–47 (1953) MathSciNetzbMATHCrossRefGoogle Scholar
  16. Campbell-Kelly, M.: Programming the EDSAC: Early programming activity at the University of Cambridge. Ann. Hist. Comput. 2(1), 7–36 (1980) MathSciNetCrossRefGoogle Scholar
  17. Carnap, R.: The Logical Syntax of Language. Routledge & Kegan Paul, London (1937) Google Scholar
  18. Cleave, J.P.: Application of formula translation to automatic coding (1960). In: Goodman, R. (ed.) Annual Review in Automatic Programming, I. Working Conference on Automatic Programming of Digital Computers held at Brighton, 1–3 April 1959, pp. 81–92. Pergamon, Elmsford (1960) Google Scholar
  19. Davis, M.: Influences of mathematical logic on computer science (1988). In: Herken, R. (ed.) The Universal Turing Machine: A Half-Century Survey. Oxford University Press, London (1988) Google Scholar
  20. Elgot, C.C.: On single vs. triple address computing machines. J. Assoc. Comput. Mach. 1(3), 119–123 (1954) CrossRefGoogle Scholar
  21. Felton, G.E.: Assembly, interpretive and conversion programs for PEGASUS (1960). In: Goodman, R. (ed.) Annual Review in Automatic Programming, I. Working Conference on Automatic Programming of Digital Computers held at Brighton, 1–3 April 1959, pp. 32–57. Pergamon, Elmsford (1960) Google Scholar
  22. Gill, S.: Current theory and practice of automatic programming. Comput. J. 2(3) (1959) Google Scholar
  23. Good, I.J.: Discussion contribution (1951). In: Manchester University Computer, Inaugural Conference, July 1951, p. 192 (1951). Reprinted in Williams and Campbell-Kelly, pp. 165–206 (1989) Google Scholar
  24. 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
  25. Hamblin, C.L.: Computer languages. Aust. J. Sci. 20(5), 135–139 (1957) MathSciNetGoogle Scholar
  26. Hamblin, C.L.: GEORGE IA and II: a semi-translation programming scheme for DEUCE. Programming and operation manual. Unpublished report, University of New South Wales (1958) Google Scholar
  27. Hopper, G.M.: The education of a computer (1952). In: Proceedings of the 1952 ACM National Meeting (Pittsburgh), pp. 243–249. ACM, New York (1952) Google Scholar
  28. Hopper, G.M.: Automatic programming: present status and future trends (1959). In: Mechanisation of Thought Processes: Proceedings of a Symposium held at the National Physical Laboratory, 24th, 25th, 26th and 27th November 1958, pp. 155–194. National Physical Laboratory, HMSO, London (1959) Google Scholar
  29. IBM: Preliminary Report: Specification for the IBM Mathematical FORmula TRANSlating System, FORTRAN. International Business Machines Corporation, 590 Madison Avenue, New York, 22, New York. Programming Research Group, Applied Science Division (1954) Google Scholar
  30. IBM: Programmer’s Reference Manual: The FORTRAN Automatic Coding System for the IBM 704 EDPM. International Business Machines Corporation, 590 Madison Ave., New York 22, NY. Applied Science Division and Programming Research Dept., Working Committee: J.W. Backus, R.J. Beeber, S. Best, R. Goldberg, H.L. Herrick, R.A. Hughes, L.B. Mitchell, R.A. Nelson, R. Nutt, D. Sayre, P.B. Sheridan, H. Stern, I. Ziller (1956) Google Scholar
  31. IBM: Reference Manual: FORTRAN II for the IBM 704 Data Processing System. International Business Machines Corporation, 590 Madison Ave., New York 22, NY (1958) Google Scholar
  32. Isaac, E.J.: Machine aids to coding (1952). In: Forrester, J.W., Hamming, R.W. (eds.) Proceedings of the 1952 ACM National Meeting, Toronto, pp. 17–19 (1952) Google Scholar
  33. Laning, J.H. Jr., Zierler, N.: A program for translation of mathematical equations with Whirlwind I. Engineering Memorandum E-364, Instrumentation Laboratory, Massachusetts Institute of Technology (1954) Google Scholar
  34. Mauchly, J.W.: Suggested Form for “BINAC BRIEF CODE” (1949). Unpublished notes, printed in Schmitt, pp. 17–18 (1988) Google Scholar
  35. McCarthy, J.: Recursive functions of symbolic expressions and their computation by machine, part I. Commun. ACM 3(4), 184–195 (1960) zbMATHCrossRefGoogle Scholar
  36. McCarthy, J.: History of LISP (1981). In: Wexelblat, R.L. (ed.) History of Programming Languages, pp. 173–185. Academic Press, San Diego (1981) Google Scholar
  37. Naur, P.: The European side of the last phase of the development of ALGOL 60 (1981). In: Wexelblat, R.L. (ed.) History of Programming Languages, pp. 92–139. Academic Press, San Diego (1981) Google Scholar
  38. Naur, P., Backus, J.W., Bauer, F.L., Green, J., Katz, C., McCarthy, J., Perlis, A.J., Rutishauser, H., Samelson, K., Vauquois, B., Wegstein, J.H., van Wijngaarden, A., Woodger, M.: Report on the algorithmic language ALGOL 60. Commun. ACM 3(5), 299–314 (1960) CrossRefGoogle Scholar
  39. Newell, A., Simon, H.A.: The logic theory machine: a complex information processing system. IRE Trans. Inf. Theory IT-2(3), 61–79 (1956) CrossRefGoogle Scholar
  40. Newell, A., Tonge, F.M.: An introduction to Information Processing Language V. Commun. ACM 3(4), 205–211 (1960) MathSciNetzbMATHCrossRefGoogle Scholar
  41. Perlis, A.J., Samelson, K.: Preliminary report—international algebraic language. Commun. ACM 1(12), 8–22 (1958) zbMATHCrossRefGoogle Scholar
  42. Puyen, J., Vauquois, B.: A propos d’un langage universel (1960). In: Proceedings of the International Conference on Information Processing, Unesco, Paris, 15–20 June 1959, pp. 132–137. Unesco, Oldenbourg and Butterworths, Paris, Munich, London (1960) Google Scholar
  43. Rabinowitz, I.N.: Report on the algorithmic language FORTRAN II. Commun. ACM 5(6), 327–337 (1962) zbMATHCrossRefGoogle Scholar
  44. Robinson, C.: Automatic programming on DEUCE (1960). In: Goodman, R. (ed.) Annual Review in Automatic Programming, I. Working Conference on Automatic Programming of Digital Computers held at Brighton, 1–3 April 1959, pp. 111–126. Pergamon, Elmsford (1960) Google Scholar
  45. Rosenbloom, P.C.: The Elements of Mathematical Logic. Dover, New York (1950) zbMATHGoogle Scholar
  46. Samelson, K.: Appendix 7 to Naur (1981): Comments by K. Samelson, 1978 December 1 (1981). In: Wexelblat, R.L. (ed.) History of Programming Languages, pp. 131–134. Academic Press, San Diego (1981) Google Scholar
  47. Schmitt, W.F.: The UNIVAC SHORT CODE. Ann. Hist. Comput. 10(1), 7–18 (1988) MathSciNetzbMATHCrossRefGoogle Scholar
  48. SHARE: News and notices. Commun. ACM 1(3), 17 (1958a) Google Scholar
  49. SHARE: News and notices. Commun. ACM 1(4), 16–17 (1958b) Google Scholar
  50. Shaw, C.J.: Jovial—a programming language for real-time command systems (1963). In: Goodman, R. (ed.) Annual Review in Automatic Programming, vol. 3, pp. 53–119. Pergamon, Elmsford (1963) Google Scholar
  51. Sheridan, P.B.: The Fortran automatic coding system. In: Summer Institute for Symbolic Logic, Cornell University, pp. 452–453. American Mathematical Society, Providence (1957) Google Scholar
  52. Sheridan, P.B.: The arithmetic translator-compiler of the IBM Fortran automatic coding system. Commun. ACM 2(2), 9–21 (1959) zbMATHCrossRefGoogle Scholar
  53. Steel, T.B. Jr.: UNCOL: the myth and the fact. In: Goodman, R. (ed.) Annual Review in Automatic Programming, vol. 2, pp. 325–344. Pergamon, Elmsford (1961) Google Scholar
  54. Strachey, C., Wilkes, M.V.: Some proposals for improving the efficiency of ALGOL 60. Commun. ACM 4(11), 488–491 (1961) zbMATHCrossRefGoogle Scholar
  55. Taylor, A.: The FLOW-MATIC and MATH-MATIC automatic programming systems (1960). In: Goodman, R. (ed.) Annual Review in Automatic Programming, I. Working Conference on Automatic Programming of Digital Computers held at Brighton, 1–3 April 1959, pp. 196–206. Pergamon, Elmsford (1960) Google Scholar
  56. Turing, A.M.: Discussion contribution (1951). In: Manchester University Computer, Inaugural Conference, July 1951, p. 192 (1951). Reprinted in Williams and Campbell-Kelly, pp. 165–206 (1989) Google Scholar
  57. Wegstein, J.H.: Algorithms: announcement. Commun. ACM 3(2), 73 (1960) CrossRefGoogle Scholar
  58. Wells, M.B.: Reflections on the evolution of algorithmic language (1980). In: Metropolis, N., Howlett, J., Rota, G.-C. (eds.) A History of Computing in the Twentieth Century. Academic Press, San Diego (1980) Google Scholar
  59. Wheeler, D.J.: The use of sub-routines in programmes (1952). In: Proceedings of the 1952 ACM National Meeting (Pittsburgh), pp. 235–236. ACM, New York (1952) Google Scholar
  60. Wilkes, M.V.: Pure and applied programming (1952). In: Forrester, J.W., Hamming, R.W. (eds.) Proceedings of the 1952 ACM National Meeting, Toronto, pp. 121–124 (1952) Google Scholar
  61. Wilkes, M.V.: The use of a ‘floating address’ system for orders in an automatic digital computer. Proc. Camb. Philos. Soc. 49(1), 84–89 (1953b) MathSciNetzbMATHCrossRefGoogle Scholar
  62. Wilkes, M.V., Wheeler, D.J., Gill, S.: The Preparation of Programs for an Electronic Digital Computer. Addison-Wesley, Reading (1951) zbMATHGoogle Scholar
  63. Woodger, M.: An introduction to ALGOL 60. Comput. J. 3(2), 67–75 (1960) MathSciNetzbMATHCrossRefGoogle Scholar
  64. Zuse, K.: Über den Allgemeinen Plankalkül als Mittel zur Formalierung schematisch-kombinativer Aufgaben. Arch. Math. 1(6), 441–449 (1948) MathSciNetCrossRefGoogle Scholar

Copyright information

© Springer-Verlag London Limited 2011

Authors and Affiliations

  1. 1.LondonUK

Personalised recommendations