Skip to main content
Log in

Assembling a prehistory for formal methods: a personal view

  • Published:
Formal Aspects of Computing

Abstract

The history of formal methods has barely been written. Haigh recapitulates his own exposure to relevant material during three phases of his development as a scholar: as a student of computer science, as a graduate student in history, and as a professor researching the history of computing. Triangulating these perspectives suggests that formal methods is one of several strands emerging from a community of researchers that gathered around Algol, flirted with software engineering, and found an enduring home in the IFIP working group on programming methodologies. Yet the story of how a declared “formal methods” movement emerged fromthis group has remains unclear.Haigh explores some relevant ideas fromacademic history, sketches historical connections between formal methods and other areas of computer science, and concludes with some suggestion for and challenges to formal methods participants who aim to tell the story of their field. This, he suggests, may cheer up Donald Knuth.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Alberts, G., Daylight, E.G.: Universality versus locality: the Amsterdam style of algol implementation. IEEE Ann Hist Comput 36(4), 52–63 (2014)

    Article  Google Scholar 

  2. Bauer, F.L. (ed.): Software engineering: an advanced course. Springer, New York (1973)

    MATH  Google Scholar 

  3. Bergin, T.J., Gibson, R.G. (eds.): History of programming languages II. ACM Press, New York (1996)

    MATH  Google Scholar 

  4. Brooks FP (1995) No silver bullet–essence and accident in software engineering the Mythical Man month: essays on software engineering. Addison-Wesley, Reading, pp 252–290

  5. Buxton JN, Randell B (eds) (1970) Software engineering techniques: report on a conference sponsored by the NATO science committee, Rome, Italy, 27–31 Oct 1969. NATO Scientific Affairs Division

  6. Ceruzzi, P.E.: A history of modern computing. MIT Press, Cambridge (1998)

    Google Scholar 

  7. Dahl, O.J., Dijkstra, E.W., Hoare, C.A.R.: Structured programming. Academic Press, London (1972)

    MATH  Google Scholar 

  8. Davis, M.: Engines of logic: mathematicians and the origin of the computer. Norton, NY (2001)

    MATH  Google Scholar 

  9. Daylight, E.G.: The dawn of software engineering: from turing to Dijkstra. Lonely Scholar, New York (2012)

    MATH  Google Scholar 

  10. Dijkstra, E.W.: The humble programmer. Commun ACM 15(10), 859–866 (1972)

    Article  Google Scholar 

  11. Dijkstra, E.W.: EWD 611: on the fact that the Atlantic Ocean has two sides. In: Dijkstra, E.W. (ed.) Selected writings on computer science: a personal perspective, pp. 268–276. Springer, Berlin (1982)

    Chapter  Google Scholar 

  12. Dijkstra EW (1993) There is still a war going on: EWD 1165

  13. Dijkstra EW (2000) EWD1298: under the spell of Leibniz's Dream. https://www.cs.utexas.edu/users/EWD/transcriptions/EWD12xx/EWD1298.html. Accessed 20 Sept 2019

  14. Dijkstra, E.W.: EWD1308: what led to `notes on structured programming'. In: Broy, M., Denert, E. (eds.) Software pioneers: contributions to software engineering. Springer, Berlin (2001)

    Google Scholar 

  15. Dijkstra EW, Duncan FG, Garwick JV, Hoare CA, Randell B, Seegmueller G, Turski WM, Woodger M. (1970). Minority report. Algol Bull 7

  16. Gries D (ed) (1978) Programming methodology: a collection of articles by members of IFIP WG2.3. Springer, Berlin

    MATH  Google Scholar 

  17. Haigh T (2010) Dijkstra's Crisis: the end of Algol and the beginning of software engineering: 1968–1972. http://www.tomandmaria.com/Tom/Writing/DijkstrasCrisis_LeidenDRAFT.pdf

  18. Haigh, T.: We have never been digital. Commun ACM 57(9), 24–28 (2014)

    Article  Google Scholar 

  19. Haigh, T.: The tears of Donald Knuth. Commun ACM 58(1), 40–44 (2015)

    Article  Google Scholar 

  20. Haigh, T.: The history of UNIX in the history of software. Cahiers D'Histoire Du CNAM 7–8, 77–90 (2017)

    Google Scholar 

  21. Hall, A.: Seven myths of formal methods. IEEE Softw 7(5), 11–19 (1990)

    Article  Google Scholar 

  22. Hashagen, U., Keil-Slawik, R., Norberg, A.L. (eds.): Mapping the history of computing: software issues. Springer, Berlin (2002)

    Google Scholar 

  23. Jones, C.B.: Software development: a rigorous approach. Prentice Hall, Englewood Cliffs (1980)

    MATH  Google Scholar 

  24. Jones, C.B.: Systematic software development using VDM. Prentice Hall, Englewood Cliffs (1986)

    MATH  Google Scholar 

  25. Jones, C.B.: The early search for tractable ways of reasoning about programs. IEEE Ann Hist Comput 25(2), 26–49 (2003)

    Article  MathSciNet  Google Scholar 

  26. Knuth DE (2014) “Let’s not dumb down the history of computing,” Kailath Lecture, Stanford University. Retrieved from https://www.youtube.com/watch?v=gAXdDEQveKw

  27. Kraft P (1977) Programmers and managers: the routinization of computer programming in the United States. Springer, New York

    Book  Google Scholar 

  28. Kurki-Suonio P (n.d.) Technical committee 2–Software: theory and practice. Retrieved 7 Aug 2010, from http://www.ifip.or.at/36years/t02kurki.html

  29. Latham JT, Bush VJ, Cottam ID (1990) The programming process: an introduction using VDM and Pascal. Addison Wesley, Reading

  30. Lindsey, C.H.: A history of algol 68. In: Bergin, T.J., Gibson, R.G. (eds.) History of programming Languages II, pp. 27–83. ACM Press, New York (1996)

    Chapter  Google Scholar 

  31. MacKenzie, D.: Mechanizing proof. MIT Press, Cambridge (2001)

    Book  Google Scholar 

  32. Mahoney, M.S.: Computers and mathematics: the search for a discipline of computer science. In: Echeverria, J., Ibarra, A., Mormann, T. (eds.) The space of mathematics, pp. 347–361. De Gruyter, Berlin (1992)

    Google Scholar 

  33. Mahoney, M.S.: Software as science-science as software. In: Hashagen, U., Keil-Slawik, R., Norberg, A.L. (eds.) Mapping the history of computing: software issues, pp. 25–48. Springer, Berlin (2002)

    Chapter  Google Scholar 

  34. Mahoney, M.S., Haigh, T. (eds.): Histories of computing. Harvard University Press, Harvard (2011)

    Google Scholar 

  35. Mounier-Kuhn, P.: Algol in France: from universal project to embedded culture. IEEE Ann Hist Comput 36(4), 6–25 (2014)

    Article  Google Scholar 

  36. Naur, P., Randell, B. (eds.): Software engineering: report on a conference sponsored by the NATO science committee, Garmisch, Germany, 7th to 11th October 1968. Science Affairs Division, NATO (1969)

    Google Scholar 

  37. Nofre, D.: Unraveling algol: US, Europe, and the creation of a programming language. IEEE Ann Hist Comput 32(2), 58–68 (2010)

    Article  MathSciNet  Google Scholar 

  38. Priestley, M.: A science of operations: machines, logic, and the invention of programming. Springer, Berlin (2011)

    Book  Google Scholar 

  39. Randell B (1996) The 1968/69 NATO Software Engineering Reports, from unpublished proceedings of Dagstuhl-Seminar 9635. In: History of software engineering. 26–30 Aug 1996, from http://www.cs.ncl.ac.uk/people/brian.randell/home.formal/NATO/NATOReports/index.html

  40. Randell B (2003) Edsger Dijkstra ninth IEEE international workshop on object-oriented real-time dependable systems (WORDS'03F). In: IEEE computer society

  41. Valdez, M.E.P.: A gift from Pandora's Box: the software crisis. University of Edinburgh, Edinburgh, UK, Ph.D (1988)

    Google Scholar 

  42. Wexelblat, R.L. (ed.): History of programming languages. Academic Press, New York (1981)

    MATH  Google Scholar 

  43. Wing, J.M.: A specifier's introduction to formal methods. Computer 23(9), 8–24 (1990)

    Article  Google Scholar 

  44. Wirth, N.: A brief history of software engineering. IEEE Ann Hist Comput 30(3), 32–39 (2008)

    Article  MathSciNet  Google Scholar 

  45. Woodger M (1978) A History of WG2.3. In: Gries D (ed) Programming methodology: a collection of articles by members of IFIP WG2.3. Springer, Berlin, pp 1–6

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Thomas Haigh.

Additional information

by Cliff Jones and Jose N Oliveira

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Haigh, T. Assembling a prehistory for formal methods: a personal view. Form Asp Comp 31, 663–674 (2019). https://doi.org/10.1007/s00165-019-00494-z

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00165-019-00494-z

Keywords

Navigation