Skip to main content

40 Years of Formal Methods

Some Obstacles and Some Possibilities?

  • Conference paper
FM 2014: Formal Methods (FM 2014)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8442))

Included in the following conference series:

Abstract

In this “40 years of formal methods” essay we shall first delineate, Sect. 1, what we mean by method, formal method, computer science, computing science, software engineering, and model-oriented and algebraic methods. Based on this, we shall characterize a spectrum from specification-oriented methods to analysis-oriented methods. Then, Sect. 2, we shall provide a “survey”: which are the ‘prerequisite works’ that have enabled formal methods, Sect. 2.1, and which are, to us, the, by now, classical ‘formal methods’, Sect. 2.2. We then ask ourselves the question: have formal methods for software development, in the sense of this paper been successful? Our answer is, regretfully, no! We motivate this answer, in Sect. 3.2, by discussing eight obstacles or hindrances to the proper integration of formal methods in university research and education as well as in industry practice. This “looking back” is complemented, in Sect. 3.4, by a “looking forward” at some promising developments — besides the alleviation of the (eighth or more) hindrances!

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abrial, J.-R.: The B Book. Cambridge University Press, UK (1996)

    Book  MATH  Google Scholar 

  2. Abrial, J.-R.: Modeling in Event-B: System and Softw. Eng. Cambridge University Press, UK (2009)

    Google Scholar 

  3. Abrial, J.-R.: From Z to B and then Event-B: Assigning Proofs to Meaningful Programs. In: Johnsen, E.B., Petre, L. (eds.) IFM 2013. LNCS, vol. 7940, pp. 1–15. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  4. Araki, K., et al. (eds.): IFM 1999–2013: Integrated Formal Methods. LNCS, vol. 1945, 2335, 2999, 3771, 4591, 5423, 6496, 7321 and 7940. Springer, Heidelberg (2013)

    Google Scholar 

  5. Ball, T., Cook, B., Levin, V., Rajamani, S.K.: SLAM and Static Driver Verifier: Technology transfer of formal methods inside microsoft. In: Boiten, E.A., Derrick, J., Smith, G. (eds.) IFM 2004. LNCS, vol. 2999, pp. 1–20. Springer, Heidelberg (2004), Tool website: http://research.microsoft.com/en-us/projects/slam

  6. Barnett, M., Fähndrich, M., Leino, K.R.M., Müller, P., Schulte, W., Venter, H.: Specification and verification: the Spec# experience. Commun. ACM 54(6), 81–91 (2011), Tool website: http://research.microsoft.com/en-us/projects/specsharp

  7. Bekič, H., Bjørner, D., Henhapl, W., Jones, C.B., Lucas, P.: A Formal Definition of a PL/I Subset. Technical Report 25.139, Vienna, Austria (September 20, 1974)

    Google Scholar 

  8. Bertot, Y., Castéran, P.: Interactive Theorem Proving and Program Development. Coq’Art: The Calculus of Inductive Constructions. EATCS Series: Texts in Theoretical Computer Science. Springer (2004)

    Google Scholar 

  9. Beyer, D., Henzinger, T.A., Jhala, R., Majumdar, R.: The software model checker BLAST. International Journal on Software Tools for Technology Transfer, STTT 9(5-6), 505–525 (2007), Tool website: http://www.sosy-lab.org/~dbeyer/Blast/index-epfl.php

    Article  Google Scholar 

  10. Bjørner, D.: Programming Languages: Formal Development of Interpreters and Compilers. In: Morlet, E., Ribbens, D. (eds.) International Computing Symposium 1977, pp. 1–21. European ACM, North-Holland Publ. Co., Amsterdam (1977)

    Google Scholar 

  11. Bjørner, D. (ed.) Logics of Formal Specification Languages. Computing and Informatics 22(1-2) (2003); This double issue contains the following papers on B, CafeOBJ, CASL, RAISE, TLA+ and Z

    Google Scholar 

  12. Bjørner, D.: Software Engineering, Vol. 1: Abstraction and Modelling. Texts in Theoretical Computer Science, the EATCS Series. Springer (2006)

    Google Scholar 

  13. Bjørner, D.: Software Engineering, Vol. 2: Specification of Systems and Languages. Texts in Theoretical Computer Science, the EATCS Series. Springer (2006) (Chapters 12–14 are primarily authored by Christian Krog Madsen)

    Google Scholar 

  14. Bjørner, D.: Software Engineering, Vol. 3: Domains, Requirements and Software Design. Texts in Theoretical Computer Science, the EATCS Series. Springer (2006)

    Google Scholar 

  15. Bjørner, D.: Special Double Issue on Formal Methods of Program Development. International Journal of Software and Informatics 3 (2009)

    Google Scholar 

  16. Bjørner, D.: Believable Software Management. Encyclopedia of Software Engineering 1(1), 1–32 (2011)

    Google Scholar 

  17. Bjørner, D., et al. (eds.): VDM, FME and FM Symposia 1987–2012, LNCS, vol. 252, 328, 428, 551-552, 670, 873, 1051, 1313, 1708-1709, 2021, 2391, 2805, 3582, 4085, 5014, 6664, 7436 (1987–2012)

    Google Scholar 

  18. Bjorner, D., Jones, C.B. (eds.): The Vienna Development Method: The Meta-Language. LNCS, vol. 61. Springer, Heidelberg (1978) (This was the first monograph on Meta-IV)

    Google Scholar 

  19. Bjørner, D., Jones, C.B. (eds.): Formal Specification and Software Development. Prentice-Hall (1982)

    Google Scholar 

  20. Bjørner, D., Oest, O.N. (eds.): Towards a Formal Description of Ada. LNCS, vol. 98. Springer, Heidelberg (1980)

    MATH  Google Scholar 

  21. Bjørner, N., Browne, A., Colon, M., Finkbeiner, B., Manna, Z., Sipma, H., Uribe, T.: Verifying Temporal Properties of Reactive Systems: A STeP Tutorial. Formal Methods in System Design 16, 227–270 (2000)

    Article  Google Scholar 

  22. Bjørner, N., McMillan, K., Rybalchenko, A.: Higher-order Program Verification as Satisfiability Modulo Theories with Algebraic Data-types. In: Higher-Order Program Analysis (June 2013), http://hopa.cs.rhul.ac.uk/files/proceedings.html

  23. Blanchet, B., Cousot, P., Cousot, R., Jerome Feret, L.M., Miné, A., Monniaux, D., Rival, X.: A static analyzer for large safety-critical software. In: Programming Language Design and Implementation, pp. 196–207 (2003)

    Google Scholar 

  24. Bowen, J., et al.: Z, B, ZUM, ABZ Meetings, Conferences, Symposia and Workshops, Z Users Workshops: 1986–1995; Z, ZB and ABZ Users Meetings: 1996–2013. LNCS, vol. 1212, 1493, 1878, 2272, 2651, 3455, 5238, 5977 and 7316 (1986–2014)

    Google Scholar 

  25. Burstall, R.M., Landin, P.J.: Programs and their proofs: an algebraic approach. Technical report, DTIC Document (1968)

    Google Scholar 

  26. Chalin, P., Kiniry, J.R., Leavens, G.T., Poll, E.: Beyond assertions: Advanced specification and verification with JML and ESC/Java2. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2005. LNCS, vol. 4111, pp. 342–363. Springer, Heidelberg (2006), Tool website: http://www.eecs.ucf.edu/~leavens/JML/index.shtml

  27. Clarke, E., Kroening, D., Lerda, F.: A tool for checking ANSI-C programs. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol. 2988, pp. 168–176. Springer, Heidelberg (2004), Tool website: http://www.cprover.org/cbmc

  28. Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. The MIT Press, Cambridge (2000) ISBN 0-262-03270-8

    Google Scholar 

  29. Clavel, M., Durán, F., Eker, S., Lincoln, P., Oliet, N.M., Meseguer, J., Talcott, C.: Maude 2.6 Manual, Department of Computer Science, University of Illinois and Urbana-Champaign, Urbana-Champaign, Ill. USA (January 2011)

    Google Scholar 

  30. Clemmensen, G., Oest, O.: Formal specification and development of an Ada compiler – a VDM case study. In: Proc. 7th International Conf. on Software Engineering, Orlando, Florida, March 26-29, pp. 430–440. IEEE (March 1984)

    Google Scholar 

  31. The CML programming language, http://cml.cs.uchicago.edu

  32. Mosses, P.D. (ed.): CASL Reference Manual. LNCS, vol. 2960. Springer, Heidelberg (2004)

    Google Scholar 

  33. Cohen, E., Dahlweid, M., Hillebrand, M., Leinenbach, D., Moskal, M., Santen, T., Schulte, W., Tobies, S.: VCC: A practical system for verifying concurrent C. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 23–42. Springer, Heidelberg (2009), Tool website: http://research.microsoft.com/en-us/projects/vcc

  34. Cohen, E., Paul, W., Schmaltz, S.: Theory of multi core hypervisor verification. In: van Emde Boas, P., Groen, F.C.A., Italiano, G.F., Nawrocki, J., Sack, H. (eds.) SOFSEM 2013. LNCS, vol. 7741, pp. 1–27. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  35. CVS: Software Version Control, http://www.nongnu.org/cvs/

  36. Dijkstra, E.: A Discipline of Programming. Prentice-Hall (1976)

    Google Scholar 

  37. Bjørner, D., Henson, M.C. (eds.): Logics of Specification Languages. EATCS Series, Monograph in Theoretical Computer Science. Springer, Heidelberg (2008)

    Google Scholar 

  38. Dürr, E.H., van Katwijk, J.: bxcVDM + + exc, A Formal Specification Language for Object Oriented Designs. In: COMP EURO 1992, pp. 214–219. IEEE (May 1992)

    Google Scholar 

  39. Fitzgerald, J., Larsen, P.G.: Developing Software Using VDM-SL. Cambridge University Press, Cambridge (1997)

    Google Scholar 

  40. Fitzgerald, J., Larsen, P.G.: Modelling Systems – Practical Tools and Techniques in Software Development, 2nd edn. Cambridge University Press, Cambridge (2009)

    Book  MATH  Google Scholar 

  41. Florian, M.: Analysis-Aware Design of Embedded Systems Software. PhD thesis, California Institute of Technology, Pasadena, California (October 2013)

    Google Scholar 

  42. Floyd, R.W.: Assigning Meanings to Programs. In: [103], pp. 19–32 (1967)

    Google Scholar 

  43. The Frama-C software analysis framework, http://frama-c.com

  44. Futatsugi, K., Diaconescu, R.: CafeOBJ Report The Language, Proof Techniques, and Methodologies for Object-Oriented Algebraic Specification. AMAST Series in Computing, vol. 6. World Scientific Publishing Co. Pte. Ltd. (1998)

    Google Scholar 

  45. George, C.W., Haff, P., Havelund, K., Haxthausen, A.E., Milne, R., Nielsen, C.B., Prehn, S., Wagner, K.R.: The RAISE Specification Language. The BCS Practitioner Series. Prentice-Hall, Hemel Hampstead (1992)

    Google Scholar 

  46. George, C.W., Haxthausen, A.E., Hughes, S., Milne, R., Prehn, S., Pedersen, J.S.: The RAISE Development Method. The BCS Practitioner Series. Prentice-Hall, Hemel Hampstead (1995)

    MATH  Google Scholar 

  47. Gries, D.: The Science of Programming. Springer (1981)

    Google Scholar 

  48. Harel, D.: Statecharts: A visual formalism for complex systems. Science of Computer Programming 8(3), 231–274 (1987)

    Article  MATH  MathSciNet  Google Scholar 

  49. Havelund, K.: The Fork Calculus - Towards a Logic for Concurrent ML. PhD thesis, DIKU, Department of Computer Science, University of Copenhagen, Denmark (1994)

    Google Scholar 

  50. Havelund, K., Pressburger, T.: Model checking Java programs using Java PathFinder. International Journal on Software Tools for Technology Transfer, STTT 2(4), 366–381 (2000)

    Article  MATH  Google Scholar 

  51. Haxthausen, A.E., Yong, X.: Linking DC together with TRSL. In: Grieskamp, W., Santen, T., Stoddart, B. (eds.) IFM 2000. LNCS, vol. 1945, pp. 25–44. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  52. Haxthausen, A.E.: Some Approaches for Integration of Specification Techniques. In: INT 2000 – Integration of Specification Techniques with Applications in Engineering, pp. 33–40. Technical University of Berlin, Germany. Dept. of Informatics (2000)

    Google Scholar 

  53. Haxthausen, A.E., Yong, X.: A RAISE Specification Framework and Justification assistant for the Duration Calculus, Saarbrücken, Dept of Linguistics, Gothenburg University, Sweden (1998)

    Google Scholar 

  54. He, J.: From CSP to Hybrid Systems. In: A Classical Mind. Prentice Hall (1994)

    Google Scholar 

  55. Hehner, E.: The Logic of Programming. Prentice-Hall (1984)

    Google Scholar 

  56. Hoare, C.: The Axiomatic Basis of Computer Programming. Communications of the ACM 12(10), 567–583 (1969)

    Article  Google Scholar 

  57. Hoare, C.: Proof of Correctness of Data Representations. Acta Informatica 1, 271–281 (1972)

    Article  MATH  Google Scholar 

  58. Hoare, C.: Communicating Sequential Processes. C.A.R. Hoare Series in Computer Science. Prentice-Hall International (1985, 2004), Published electronically: http://www.usingcsp.com/cspbook.pdf

  59. Holzmann, G.J.: Logic verification of ANSI-C code with SPIN. In: Havelund, K., Penix, J., Visser, W. (eds.) SPIN 2000. LNCS, vol. 1885, pp. 131–147. Springer, Heidelberg (2000), Tool website: http://spinroot.com/modex

  60. Holzmann, G.J.: The SPIN Model Checker, Primer and Reference Manual. Addison-Wesley, Reading (2003)

    Google Scholar 

  61. International Conferences on Formal Engineering Methods, ICFEM (ed.) : LNCS, vol. 2405, 2885, 3308, 3785, 4260, 4789, 5256, 5885, 6447 and 8144, IEEE Computer Society Press and Springer Years 2002–2013: IEEE, Years 2002–2013

    Google Scholar 

  62. ITU-T. CCITT Recommendation Z.120: Message Sequence Chart (MSC) (1992, 1996, 1999)

    Google Scholar 

  63. Jackson, D.: Software Abstractions: Logic, Language, and Analysis. The MIT Press, Cambridge (2006) ISBN 0-262-10114-9

    Google Scholar 

  64. Jacobs, B., Smans, J., Philippaerts, P., Vogels, F., Penninckx, W., Piessens, F.: VeriFast: A powerful, sound, predictable, fast verifier for C and Java. In: Bobaru, M., Havelund, K., Holzmann, G.J., Joshi, R. (eds.) NFM 2011. LNCS, vol. 6617, pp. 41–55. Springer, Heidelberg (2011), Tool website: http://people.cs.kuleuven.be/~bart.jacobs/verifast

    Chapter  Google Scholar 

  65. Jacobson, I., Booch, G., Rumbaugh, J.: The Unified Software Development Process. Object Technology Series. Addison–Wesley, Addison Wesley Longman, Inc., One Jacob Way, Reading (1999)

    Google Scholar 

  66. Jones, C.B.: Software Development: A Rigorous Approach. Prentice-Hall (1980)

    Google Scholar 

  67. Jones, C.B.: Systematic Software Development — Using VDM, 2nd edn. Prentice-Hall (1989)

    Google Scholar 

  68. Jones, N.D., Gomard, C., Sestoft, P.: Partial Evaluation and Automatic Program Generation. C.A.R.Hoare Series in Computer Science. Prentice Hall International (1993)

    Google Scholar 

  69. Kahrs, S., Sannella, D., Tarlecki, A.: The definition of Extended ML: A gentle introduction. Theoretical Computer Science 173, 445–484 (1997), Tool website: http://homepages.inf.ed.ac.uk/dts/eml

    Article  MATH  MathSciNet  Google Scholar 

  70. Kaufmann, M., Manolios, P., Moore, J.S.: Computer-Aided Reasoning: ACL2 Case Studies. Kluwer Academic Publishers (June 2000)

    Google Scholar 

  71. Kaufmann, M., Manolios, P., Moore, J.S.: Computer-Aided Reasoning: An Approach. Kluwer Academic Publishers (June 2000)

    Google Scholar 

  72. Knuth, D.: The Art of Computer Programming, Fundamental Algorithms, vol. 1. Addison-Wesley, Reading (1968)

    Google Scholar 

  73. Knuth, D.: The Art of Computer Programming, Seminumerical Algorithms, vol. 2. Addison-Wesley, Reading (1969)

    Google Scholar 

  74. Knuth, D.: The Art of Computer Programming, Searching & Sorting, vol. 3. Addison-Wesley, Reading (1973)

    Google Scholar 

  75. Lakos, C., et al. (eds.): SEFM: International IEEE Conferences on Software Engineering and Formal Methods, SEFM 2002–2013. IEEE Computer Society Press (2003-2013)

    Google Scholar 

  76. Lamport, L.: Specifying Systems. Addison–Wesley, Boston (2002)

    Google Scholar 

  77. Landin, P.J.: The mechanical evaluation of expressions. The Computer Journal 6(4), 308–320 (1964)

    Article  MATH  Google Scholar 

  78. Landin, P.J.: Correspondence between ALGOL 60 and Church’s Lambda-notation: part i. Communications of the ACM 8(2), 89–101 (1965)

    Article  MATH  MathSciNet  Google Scholar 

  79. Leino, K.R.M.: Dafny: An automatic program verifier for functional correctness. In: Clarke, E.M., Voronkov, A. (eds.) LPAR-16. LNCS, vol. 6355, pp. 348–370. Springer, Heidelberg (2010), Tool website: http://research.microsoft.com/en-us/projects/dafny

    Chapter  Google Scholar 

  80. Manna, Z., Pnueli, A.: The Temporal Logic of Reactive Systems: Specifications. Addison Wesley (1991)

    Google Scholar 

  81. Manna, Z., Pnueli, A.: The Temporal Logic of Reactive Systems: Safety. Addison Wesley (1995)

    Google Scholar 

  82. McCarthy, J.: Recursive Functions of Symbolic Expressions and Their Computation by Machines, Part I. Communications of the ACM 3(4), 184–195 (1960)

    Article  MATH  Google Scholar 

  83. McCarthy, J.: Towards a Mathematical Science of Computation. In: Popplewell, C. (ed.) IFIP World Congress Proceedings, pp. 21–28 (1962)

    Google Scholar 

  84. Meyer, B.: Eiffel: The Language, 2nd revised edn., 300 pages. Prentice Hall PTR, Upper Sadle River (1992) (Amazon price: US $ 47.00)

    Google Scholar 

  85. Milner, R.: A Calculus of Communication Systems. LNCS, vol. 92. Springer, Heidelberg (1980)

    Book  Google Scholar 

  86. Milner, R., Tofte, M., Harper, R.: The Definition of Standard ML. The MIT Press, Cambridge (1990)

    Google Scholar 

  87. Miller, A., Paul, W.: Computer Architecture, Complexity and Correctness. Springer (2000)

    Google Scholar 

  88. Nipkow, T., Paulson, L.C., Wenzel, M.T.: Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002)

    Book  MATH  Google Scholar 

  89. The OCaml programming language, http://ocaml.org

  90. Oest, O.N.: Vdm from research to practice (invited paper). In: IFIP Congress, pp. 527–534 (1986)

    Google Scholar 

  91. Owre, S., Shankar, N., Rushby, J.M., Stringer-Calvert, D.W.J.: PVS Language Reference, Computer Science Laboratory, SRI International, Menlo Park, CA (September 1999)

    Google Scholar 

  92. Owre, S., Shankar, N., Rushby, J.M., Stringer-Calvert, D.W.J.: PVS System Guide, Computer Science Laboratory, SRI International, Menlo Park, CA (September 1999)

    Google Scholar 

  93. Paul, W.: Towards a Worldwide Verification Technology. In: Meyer, B., Woodcock, J. (eds.) VSTTE 2005. LNCS, vol. 4171, pp. 19–25. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  94. Paulson, L.C.: ML for the Working Programmer. Cambridge University Press (1991)

    Google Scholar 

  95. The Python programming language, http://www.python.org

  96. Reisig, W.: Abstract State Machines for the Classroom. In: [37], pp. 15–46. Springer (2008)

    Google Scholar 

  97. Reisig, W.: Petrinetze: Modellierungstechnik, Analysemethoden, Fallstudien. Leitfäden der Informatik, 1st edn., June 15, 248 pages. Vieweg+Teubner (2010) ISBN 978-3-8348-1290-2

    Google Scholar 

  98. Reisig, W.: Understanding Petri Nets Modeling Techniques, Analysis Methods, Case Studies, 230+XXVII pages. Springer (2013) (145 illus)

    Google Scholar 

  99. Reynolds, J.C.: Definitional interpreters for higher-order programming languages. In: Proceedings of the ACM Annual Conference, vol. 2, pp. 717–740. ACM (1972)

    Google Scholar 

  100. Reynolds, J.C.: The Craft of Programming. Prentice Hall PTR (1981)

    Google Scholar 

  101. Sannella, D., Tarlecki, A.: Foundations of Algebraic Semantcs and Formal Software Development. Monographs in Theoretical Computer Science. Springer, Heidelberg (2012)

    Google Scholar 

  102. The Scala programming language, http://www.scala-lang.org

  103. Schwartz, J.: Mathematical Aspects of Computer Science. In: Proc. of Symp. in Appl. Math. American Mathematical Society, Rhode Island (1967)

    Google Scholar 

  104. Scott, D., Strachey, C.: Towards a mathematical semantics for computer languages. In: Computers and Automata. Microwave Research Inst. Symposia, vol. 21, pp. 19–46 (1971)

    Google Scholar 

  105. Sestoft, P.: Java Precisely, July 25. The MIT Press (2002)

    Google Scholar 

  106. Shankar, N., Owre, S., Rushby, J.M.: PVS Tutorial, Computer Science Laboratory, SRI International, Menlo Park, CA (February1993); Also appears in Tutorial Notes, Formal Methods Europe 1993: Industrial-Strength Formal Methods, Odense, Denmark, pp. 357–406 (April 1993)

    Google Scholar 

  107. Shankar, N., Owre, S., Rushby, J.M., Stringer-Calvert, D.W.J.: PVS Prover Guide, Computer Science Laboratory, SRI International, Menlo Park, CA (September 1999)

    Google Scholar 

  108. Sommerville, I.: Software Engineering. Addison-Wesley (1982)

    Google Scholar 

  109. Static analysers: Semmle, http://www.semmle.com , Coverity: http://www.coverity.com , CodeSonar: http://www.grammatech.com/codesonar , KlocWork: http://www.klocwork.com , etc.

  110. Thompson, S.: Haskell: The Craft of Functional Programming, 2nd edn., March 29, 512 pages. Addison Wesley (1999) ISBN 0201342758

    Google Scholar 

  111. Visser, W., Havelund, K., Brat, G.P., Park, S., Lerda, F.: Model checking programs. Autom. Softw. Eng. 10(2), 203–232 (2003), Tool website: http://javapathfinder.sourceforge.net

    Google Scholar 

  112. Whysall, P.J., McDermid, J.A.: An approach to object-oriented specification using Z. In: Nicholls, J.E. (ed.) Z User Workshop, Oxford 1990. Workshops in Computing, pp. 193–215. Springer (1991)

    Google Scholar 

  113. Woodcock, J., Larsen, P.G., Bicarregui, J., Fitzgerald, J.: Formal Methods: Practice and Experience. ACM Computing Surveys 41(4), 19 (2009)

    Article  Google Scholar 

  114. Woodcock, J.C.P., Davies, J.: Using Z: Specification, Proof and Refinement. Prentice Hall International Series in Computer Science (1996)

    Google Scholar 

  115. Zhan, N., Wang, S., Zhao, H.: Formal modelling, analysis and verification of hybrid systems. In: Liu, Z., Woodcock, J., Zhu, H. (eds.) Unifying Theories of Programming and Formal Engineering Methods. LNCS, vol. 8050, pp. 207–281. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  116. Zhou, C.C., Hansen, M.R.: Duration Calculus: A Formal Approach to Real–time Systems. Monographs in Theoretical Computer Science. An EATCS Series–Verlag. Springer (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Bjørner, D., Havelund, K. (2014). 40 Years of Formal Methods. In: Jones, C., Pihlajasaari, P., Sun, J. (eds) FM 2014: Formal Methods. FM 2014. Lecture Notes in Computer Science, vol 8442. Springer, Cham. https://doi.org/10.1007/978-3-319-06410-9_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-06410-9_4

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-06409-3

  • Online ISBN: 978-3-319-06410-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics