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.
Similar content being viewed by others
References
Alberts, G., Daylight, E.G.: Universality versus locality: the Amsterdam style of algol implementation. IEEE Ann Hist Comput 36(4), 52–63 (2014)
Bauer, F.L. (ed.): Software engineering: an advanced course. Springer, New York (1973)
Bergin, T.J., Gibson, R.G. (eds.): History of programming languages II. ACM Press, New York (1996)
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
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
Ceruzzi, P.E.: A history of modern computing. MIT Press, Cambridge (1998)
Dahl, O.J., Dijkstra, E.W., Hoare, C.A.R.: Structured programming. Academic Press, London (1972)
Davis, M.: Engines of logic: mathematicians and the origin of the computer. Norton, NY (2001)
Daylight, E.G.: The dawn of software engineering: from turing to Dijkstra. Lonely Scholar, New York (2012)
Dijkstra, E.W.: The humble programmer. Commun ACM 15(10), 859–866 (1972)
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)
Dijkstra EW (1993) There is still a war going on: EWD 1165
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
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)
Dijkstra EW, Duncan FG, Garwick JV, Hoare CA, Randell B, Seegmueller G, Turski WM, Woodger M. (1970). Minority report. Algol Bull 7
Gries D (ed) (1978) Programming methodology: a collection of articles by members of IFIP WG2.3. Springer, Berlin
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
Haigh, T.: We have never been digital. Commun ACM 57(9), 24–28 (2014)
Haigh, T.: The tears of Donald Knuth. Commun ACM 58(1), 40–44 (2015)
Haigh, T.: The history of UNIX in the history of software. Cahiers D'Histoire Du CNAM 7–8, 77–90 (2017)
Hall, A.: Seven myths of formal methods. IEEE Softw 7(5), 11–19 (1990)
Hashagen, U., Keil-Slawik, R., Norberg, A.L. (eds.): Mapping the history of computing: software issues. Springer, Berlin (2002)
Jones, C.B.: Software development: a rigorous approach. Prentice Hall, Englewood Cliffs (1980)
Jones, C.B.: Systematic software development using VDM. Prentice Hall, Englewood Cliffs (1986)
Jones, C.B.: The early search for tractable ways of reasoning about programs. IEEE Ann Hist Comput 25(2), 26–49 (2003)
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
Kraft P (1977) Programmers and managers: the routinization of computer programming in the United States. Springer, New York
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
Latham JT, Bush VJ, Cottam ID (1990) The programming process: an introduction using VDM and Pascal. Addison Wesley, Reading
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)
MacKenzie, D.: Mechanizing proof. MIT Press, Cambridge (2001)
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)
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)
Mahoney, M.S., Haigh, T. (eds.): Histories of computing. Harvard University Press, Harvard (2011)
Mounier-Kuhn, P.: Algol in France: from universal project to embedded culture. IEEE Ann Hist Comput 36(4), 6–25 (2014)
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)
Nofre, D.: Unraveling algol: US, Europe, and the creation of a programming language. IEEE Ann Hist Comput 32(2), 58–68 (2010)
Priestley, M.: A science of operations: machines, logic, and the invention of programming. Springer, Berlin (2011)
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
Randell B (2003) Edsger Dijkstra ninth IEEE international workshop on object-oriented real-time dependable systems (WORDS'03F). In: IEEE computer society
Valdez, M.E.P.: A gift from Pandora's Box: the software crisis. University of Edinburgh, Edinburgh, UK, Ph.D (1988)
Wexelblat, R.L. (ed.): History of programming languages. Academic Press, New York (1981)
Wing, J.M.: A specifier's introduction to formal methods. Computer 23(9), 8–24 (1990)
Wirth, N.: A brief history of software engineering. IEEE Ann Hist Comput 30(3), 32–39 (2008)
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
Author information
Authors and Affiliations
Corresponding author
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
About this article
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-019-00494-z