Advertisement

Turing’s 1949 Paper in Context

  • Cliff B. Jones
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10307)

Abstract

Anyone who has written one knows how frustratingly difficult it can be to perfect a computer program. Some of the founding fathers of computing set out ideas for reasoning about software — one would say today ‘techniques for proving that a program satisfies its specification’. Alan Turing presented a paper entitled Checking a Large Routine that laid out a workable method for reasoning about programs. Sadly his paper had little impact. Understanding the problem faced, Turing’s proposal and what followed provides insight into how ideas evolve. Comparing three contributions from the 1940s with the current state of the art clarifies a problem that still costs society a fortune each year.

Keywords

Formal Method Turing Machine Proof Obligation Current Author Machine Code 
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.

Notes

Acknowledgements

I should like to dedicate this paper to Lockwood Morris (1943–2014) who was a great but under-appreciated scientist. We worked together on [MJ84] when we were both in Oxford and he subsequently spent his sabbatical with me in Manchester. As well as many happy memories, Lockwood did me a great personal favour in December 2013 which was sadly the last time we met.

I am extremely grateful to Liesbeth de Mol for bringing Curry’s work to my attention and to Gerard Alberts for interesting input on van Wijngaarden. Comments from anonymous referees have also helped improve the paper although some of their suggestions will not fit in the page ration. My funding for this research comes from the EPSRC Strata Platform Grant.

References

  1. [Cur49]
    Curry, H.B.: On the composition of programs for automatic computing. Naval Ordnance Laboratory Memorandum 9806, 19-8, 52 pp. (1949)Google Scholar
  2. [Flo67]
    Floyd, R.W.: Assigning meanings to programs. In: Proceedings of Symposium in Applied Mathematics. Mathematical Aspects of Computer Science, vol. 19, pp. 19–32. American Mathematical Society (1967)Google Scholar
  3. [Gor61]
    Gorn, S.: Specification languages for mechanical languages and their processors a baker’s dozen: a set of examples presented to ASA x3.4 subcommittee. Commun. ACM 4(12), 532–542 (1961)CrossRefzbMATHGoogle Scholar
  4. [Gor68]
    Gorn, S.: The identification of the computer, information sciences: their fundamental semiotic concepts and relationships. Found. Lang. 4, 339–372 (1968)zbMATHGoogle Scholar
  5. [GvN47]
    Goldstine, H.H., von Neuman, J.: Planning and coding of problems for an electronic computing instrument. Technical report, Institute of Advanced Studies, Princeton (1947)Google Scholar
  6. [Hoa69]
    Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580, 583 (1969)Google Scholar
  7. [Hoa71]
    Hoare, C.A.R.: Proof of a program: FIND. Commun. ACM 14, 39–45 (1971)CrossRefzbMATHGoogle Scholar
  8. [Jon03]
    Jones, C.B.: The early search for tractable ways of reasoning about programs. IEEE Ann. Hist. Comput. 25(2), 26–49 (2003)MathSciNetCrossRefGoogle Scholar
  9. [Kin71]
    King, J.C.: A program verifier. In: Freiman, C.V. (ed.) Proceedings of the Information Processing, IFIP 1971, pp. 234–249. North-Holland (1971)Google Scholar
  10. [MJ84]
    Morris, F.L., Jones, C.B.: An early program proof by Alan Turing. Ann. Hist. Comput. 6(2), 139–143 (1984)MathSciNetCrossRefzbMATHGoogle Scholar
  11. [Pét66]
    Péter, R.: Recursive Functions. Academic Press, New York (1966)Google Scholar
  12. [Pri11]
    Priestley, M.: A Science of Operations: Machines, Logic and the Invention of Programming. Springer Science & Business Media, London (2011)CrossRefzbMATHGoogle Scholar
  13. [Tur49]
    Turing, A.M.: Checking a large routine. In: Report of a Conference on High Speed Automatic Calculating Machines, pp. 67–69. University Mathematical Laboratory, Cambridge, June 1949Google Scholar
  14. [vW66]
    Wijngaarden, A.: Numerical analysis as an independent science. BIT 6, 66–81 (1966)MathSciNetCrossRefzbMATHGoogle Scholar
  15. [WLBF09]
    Woodcock, J., Larsen, P.G., Bicarregui, J., Fitzgerald, J.: Formal methods: practice and experience. ACM Comput. Surv. 41(4), 1–36 (2009)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  1. 1.School of Computing ScienceNewcastle UniversityNewcastle upon TyneUK

Personalised recommendations