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


The overarching theme of this book has been the story of how computational agency has, over a period of several centuries, migrated from humans to machines. This migration brought with it the need to find a new kind of language, one which was adequate to express computational processes in such a way that they could be carried out mechanically. To begin with, mathematical logic only formalized the language of imperative statements and proof, however, and it was not until the mid-1930s that completely formal notations for the expression of algorithms and computational processes were developed. These particular notations turned out not to be ideally suited for use with the technology of automatic computation that was emerging in the same period, however, and several decades were to pass before developments converged on a stable set of basic concepts and ideas. It is a central proposal of this book that this convergence was the achievement of the Algol research programme, the tradition of work that was inspired by the Algol 60 language proposals and culminated in the widespread adoption of the ideas about programming notation associated with the term ‘structured programming’.


Programming Language Automatic Programming Abstract Data Type Program Prove Programming Language Design 
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.


  1. Arden, B.W. (ed.): What Can be Automated? The Computer Science and Engineering Research Study (COSERS). MIT Press, Cambridge (1980) Google Scholar
  2. Butterfield, H.: The Whig Interpretation of History. Bell, London (1931) Google Scholar
  3. De Millo, R.A., Lipton, R.J., Perlis, A.J.: Social processes and proofs of theorems and programs. Commun. ACM 22(5), 271–280 (1979) CrossRefGoogle Scholar
  4. Edgerton, D.: The Shock of the Old: Technology and Global History Since 1900. Profile Books, London (2006) Google Scholar
  5. Edwards, P.N.: The Closed World: Computers and the Politics of Discourse in Cold War America. MIT Press, Cambridge (1996) Google Scholar
  6. Elgot, C.C.: On single vs. triple address computing machines. J. Assoc. Comput. Mach. 1(3), 119–123 (1954) CrossRefGoogle Scholar
  7. Fetzer, J.H.: Program verification: the very idea. Commun. ACM 31(9), 1048–1063 (1988) CrossRefGoogle Scholar
  8. Gillies, D. (ed.): Revolutions in Mathematics. Oxford University Press, London (1992) zbMATHGoogle Scholar
  9. Gillies, D., Zheng, Y.: Dynamic interactions with the philosophy of mathematics. Theoria 16(3), 437–459 (2001) MathSciNetzbMATHGoogle Scholar
  10. Hamblin, C.L.: Computer languages. Aust. J. Sci. 20(5), 135–139 (1957) MathSciNetGoogle Scholar
  11. Hoare, C.A.R.: Programming is an engineering profession. Technical Report PRG-27, Programming Research Group, Oxford University (1982) Google Scholar
  12. Jones, C.B.: The early search for tractable ways of reasoning about programs. IEEE Ann. Hist. Comput. 25(2), 26–49 (2003) MathSciNetCrossRefGoogle Scholar
  13. Lakatos, I.: Falsification and the methodology of scientific research programmes. In: Lakatos, I., Musgrave, A. (eds.) Criticism and the Growth of Knowledge, pp. 91–196. Cambridge University Press, Cambridge (1970) Google Scholar
  14. Mahoney, M.S.: Computer science: the search for a mathematical theory. In: Krige, J., Pestre, D. (eds.) Science in the Twentieth Century, pp. 617–634. Harwood Academic, Reading (1997) Google Scholar
  15. 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
  16. 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
  17. Pickering, A.: The Mangle of Practice: Time, Agency and Science. University of Chicago Press, Chicago (1995) zbMATHCrossRefGoogle Scholar
  18. Rosen, S.: Programming systems and languages: a historical survey. In: Proceedings of the 1964 Spring Joint Computer Conference. AFIPS Conference Proceedings, vol. 25, pp. 1–15. Spartan Books, Inc., Cleaver-Hume Press, Baltimore, London (1964) Google Scholar
  19. Rosen, S.: Programming systems and languages 1965–1975. Commun. ACM 15(7), 591–600 (1972) CrossRefGoogle Scholar
  20. Shaw, M.: Prospects for an engineering discipline of software. IEEE Softw. 7(6), 15–24 (1990) CrossRefGoogle Scholar
  21. Stroustrup, B.: The Design and Evolution of C++. Addison-Wesley, Reading (1994) Google Scholar
  22. Turing, A.M.: Checking a large routine (1949). In: Report of a Conference on High Speed Automatic Calculating Machines, 22–25 June 1949, pp. 70–72. University Mathematical Laboratory, Cambridge (1950) Google Scholar
  23. 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
  24. Wilkes, M.V., Wheeler, D.J., Gill, S.: The Preparation of Programs for an Electronic Digital Computer. Addison-Wesley, Reading (1951) zbMATHGoogle Scholar

Copyright information

© Springer-Verlag London Limited 2011

Authors and Affiliations

  1. 1.LondonUK

Personalised recommendations