Skip to main content
Log in

Turing und die Verifikation

  • HAUPTBEITRAG
  • TURING UND DIE VERIFIKATION
  • Published:
Informatik-Spektrum Aims and scope

Zusammenfassung

Ausgehend von Turings 1949 gehaltenem Vortrag ,,Checking a Large Routine“ untersuchen wir, welche seiner Ideen zur Verifikation von Programmen sich durchgesetzt haben, und skizzieren, wie sich das Gebiet der Verifikation seitdem bis heute weiterentwickelt hat.

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.

References

  1. Abrial JR, Hallerstede S (2007) Refinement, decomposition and instantiation of discrete models: Application to Event-B. Fundam Informaticae 77(1–2):1–28

    MathSciNet  MATH  Google Scholar 

  2. Alkassar E, Böhme S, Mehlhorn K, Rizkallah C (2011) Verification of certifying computations. In: Gopalakrishnan G, Qadeer S (eds) Computer Aided Verification, volume 6806 of Lecture Notes in Computer Science, Springer, pp 67–82

  3. Alkassar E, Hillebrand MA, Leinenbach D, Schirmer NW, Starostin A (2008) The Verisoft approach to systems verification. In: Shankar N, Woodcock J (eds) Verified Software: Theories, Tools, Experiments (VSTTE), vol 5295 of Lecture Notes in Computer Science, Springer, pp 209–224

  4. Apt KR, de Boer FS, Olderog ER (2009) Verification of Sequential and Concurrent Programs, 3rd, extended edn. Springer

  5. Apt KR, Francez N, de Roever WP (1980) A proof system for communicating sequential processes. ACM Trans Prog Lang Syst 2(3):359–385

    Article  MATH  Google Scholar 

  6. Backhouse RC (1986) Program Construction and Verification. Prentice-Hall International, Englewood Cliffs, NJ

    Google Scholar 

  7. Baier C, Katoen JP (2008) Principles of Model Checking. MIT Press

  8. Balser M, Reif W, Schellhorn G, Stenzel K, Thums A (2000) Formal system development in KIV. In: Maibaum T (ed) Proc. Fundamental Approaches to Software Engineering, vol 1783 of Lecture Notes in Computer Science, Springer, pp 363–366

  9. Becker B, Podelski A, Damm W, Fränzle M, Olderog ER, Wilhelm R (2007) SFB/TR 14 AVACS – Automatic Verification and Analysis of Complex Systems. it – Information Technology 49(2):118–126

  10. Beckert B, Hähnle R, Schmitt PH (eds) (2007) Verification of Object-Oriented Software: The KeY Approach, vol 4334 of Lecture Notes in Computer Science. Springer

  11. Bertot Y, Castéran P (2004) Interactive Theorem Proving and Program Development: Coq’Art: The Calculus of Inductive Constructions. Springer

  12. Blanchet B, Cousot P, Cousot R, Feret J, Mauborgne L, Miné A, Monniaux D, Rival X (2003) A static analyzer for large safety-critical software. In: PLDI. ACM, pp 196–207

  13. Brockschmidt M, Otto C, Giesl J (2011) Modular termination proofs of recursive Java bytecode programs by term rewriting. In: Schmidt-Schauß M (ed) RTA, vol 10 of LIPIcs. Schloss Dagstuhl – Leibniz-Zentrum fuer Informatik, pp 155–170

  14. Büchi J, Landweber L (1969) Solving sequential conditions by finite-state strategies. Trans Amer Math Society 138:367–378

    Google Scholar 

  15. Church A (1957) Applications of recursive arithmetic to the problem of circuit synthesis. In: Summaries of the Summer Institute of Symbolic Logic, vol 1. Cornell Univ, Ithaca, NY, pp 3–50

  16. Clarke EM (1979) Programming language constructs for which it is impossible to obtain good Hoare axiom systems. J ACM 26(1):129–147

    Article  MATH  Google Scholar 

  17. Clarke EM, Emerson EA, Sifakis J (2009) Model checking: algorithmic verification and debugging. Commun ACM 52(11):74–84

    Article  Google Scholar 

  18. Clarke EM, Grumberg O, Hiraishi H, Jha S, Long DE, McMillan KL, Ness LA (1993) Verification of the Futurebus+ cache coherence protocol. In: Agnew D, Claesen LJM, Camposano R (eds) Proc. 11th IFIP WG 10.2 Intern. Conf. on Computer Hardware Description Languages and their Applications (CHDL), vol A-32 of IFIP Transactions. North-Holland, pp 15–30

  19. Clarke EM, Grumberg O, Peled DA (1999) Model Checking. MIT Press

  20. Cook B, Podelski A, Rybalchenko A (2011) Proving program termination. Commun ACM 54(5):88–98

    Article  Google Scholar 

  21. Cousot P, Cousot R (1977) Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: POPL, pp 238–252

  22. Cousot P, Cousot R (2012) An abstract interpretation framework for termination. In: Field J, Hicks M (eds) POPL. ACM, pp 245–258

  23. Damm W, Josko B (1983) A sound and relatively omplete Hoare-logic for a language with higher type procedures. Acta Inf 20:59–101

    Article  MathSciNet  MATH  Google Scholar 

  24. de Bakker JW (1975) Inleiding bewijsmethoden. In: Colloquium Programmcorrectheid, MC Syllabus 21. Mathematisch Centrum, Amsterdam, pp 3–17

  25. de Boer FS (1991) A proof system for the language POOL. In: de Bakker JW, de Roever WP, Rozenberg G (eds) Foundations of Object-Oriented Languages, vol 489 of Lecture Notes in Computer Science. Springer, pp 124–150

  26. de Roever WP, de Boer FS, Hannemann U, Hooman J, Lakhnech Y, Poel M, Zwiers J (2001) Concurrency Verification – Introduction to Compositional and Noncompositional Methods. Cambridge University Press

  27. Dijkstra EW (1976) A Discipline of Programming. Prentice-Hall

  28. Dräger K, Kupriyanov A, Finkbeiner B, Wehrheim H (2010) SLAB: A certifying model checker for infinite-state concurrent systems. In: Esparza J, Majumdar R (eds) Tools and Algorithms for the Construction and Analysis of Systems (TACAS), vol 6015 of Lecture Notes in Computer Science. Springer, pp 271–274

  29. Emerson EA, Clarke EM (1982) Using branching time temporal logic to synthesize synchronization skeletons. Sci Comput Programming 2(3):241–266

    Article  MATH  Google Scholar 

  30. Feijen WHJ, van Gasteren AJM (1999) On a Method of Multiprogramming. Springer, New York

    MATH  Google Scholar 

  31. Ferdinand C, Heckmann R, Langenbach M, Martin F, Schmidt M, Theiling H, Thesing S, Wilhelm R (2001) Reliable and precise WCET determination for a real-life processor. In: Henzinger TA, Kirsch CM (eds) EMSOFT, vol 2211 of Lecture Notes in Computer Science. Springer, pp 469–485

  32. Finkbeiner B, Schewe S (2005) Uniform distributed synthesis. In: Proc. LICS. IEEE Computer Society Press, pp 321–330

  33. Floyd RW (1967) Assigning meaning to programs. In: Schwartz JT (ed) Proc. Symposium on Applied Mathematics 19, Mathematical Aspects of Computer Science, American Mathematical Society, New York, pp 19–32

  34. Giesl J, Thiemann R, Schneider-Kamp P, Falke S (2004) Automated termination proofs with AProVE. In: van Oostrom V (ed) RTA, vol 3091 of Lecture Notes in Computer Science. Springer, pp 210–220

  35. Gorn S (1967) Handling the growth by definition of mechanical languages. In: Proceedings of the 1967 Spring Joint Computer Conference, pp 213–224

  36. Gries D (1981) The Science of Programming. Springer, New York

    MATH  Google Scholar 

  37. Grumberg O, Veith H (eds) (2008) 25 Years of Model Checking – History, Achievements, Perspectives, vol 5000 of Lecture Notes in Computer Science. Springer

  38. Halbwachs N (1998) Synchronous programming of reactive systems. In: Hu AJ, Vardi MY (eds) CAV, vol 1427 of Lecture Notes in Computer Science. Springer, pp 1–16

  39. Harel D, Kozen D, Tiuryn J (2000) Dynamic logic. MIT Press

  40. Havelund K, Roşu G (2004) An overview of the runetime verification tool Java PathExplorer. Formal Methods Syst Des 24:189–2004

    Article  MATH  Google Scholar 

  41. Hoare CAR (1969) An axiomatic basis for computer programming. Commun ACM 12:576–580, 583

    Article  MATH  Google Scholar 

  42. Hoare CAR (1971) Procedures and parameters: an axiomatic approach. In: Engeler E (ed) Proceedings of Symposium on the Semantics of Algorithmic Languages, vol 188 of Lecture Notes in Mathematics. Springer, pp 102–116

  43. Ihlemann C, Sofronie-Stokkermans V (2010) On hierarchical reasoning in combinations of theories. In: Giesl J, Hähnle R (eds) International Joint Conference on Automated Reasoning (IJCAR), vol 6173 of Lecture Notes in Artificial Intelligence. Springer, pp 30–45

  44. Klein G, Andronick J, Elphinstone K, Heiser G, Cock D, Derrin P, Elkaduwe D, Engelhardt K, Kolanski R, Norrish M, Sewell T, Tuch H, Winwood S (2010) sel4: formal verification of an operating-system kernel. Commun ACM 53(6):107–115

    Article  Google Scholar 

  45. Kreiker J, Tarlecki A, Vardi MY, Wilhelm R (2011) Modeling, analysis, and verification – the formal methods manifesto 2010 (Dagstuhl Perspectives Workshop 10482). Dagstuhl Manifestos 1(1):21–40

    Google Scholar 

  46. Kupferman O, Vardi MY (2001) Synthesizing distributed systems. In: Proc. LICS. IEEE Computer Society Press, pp 389–398

  47. Lamport L (1977) Proving the correctness of multiprocess programs. IEEE Trans Softw Eng SE-3:2:125–143

    Google Scholar 

  48. Langmaack H, Olderog ER (1980) Present-day Hoare-like systems for programming languages with procedures: power, limits and most likely extensions. In: de Bakker JW, van Leeuwen J (eds) Automata, Languages and Programming, Proc 7th ICALP, vol 85 of Lecture Notes in Computer Science. Springer, pp 363–373

  49. Leavens GT, Cheon Y, Clifton C, Ruby C, Cok DR (2005) How the design of JML accomodates both runtime assertion checking and formal verification. Sci Comput Prog 55:185–208

    Article  MathSciNet  MATH  Google Scholar 

  50. Lee CS, Jones ND, Ben-Amram AM (2001) The size-change principle for program termination. In: POPL, pp 81–92

  51. Leroy X (2009) Formal verification of a realistic compiler. Commun ACM 52(7):107–115

    Article  Google Scholar 

  52. Levin G, Gries D (1981) A proof technique for communicating sequential processes. Acta Inf 15:281–302

    Article  MathSciNet  MATH  Google Scholar 

  53. Lowe G (1996) Breaking and fixing the Needham-Schroeder public-key protocol using FDR. Softw Concepts Tools 17(3):93–102

    Google Scholar 

  54. Manna Z, Pnueli A (1991) The Temporal Logic of Reactive and Concurrent Systems – Specification. Springer, New York

    MATH  Google Scholar 

  55. Manna Z, Pnueli A (1995) Temporal Verification of Reactive Systems – Safety. Springer, New York

    Book  Google Scholar 

  56. McConnell RM, Mehlhorn K, Näher S, Schweitzer P (2011) Certifying algorithms. Comput Sci Rev 5(2):119–161

    Article  Google Scholar 

  57. Meyer B (1997) Object-Oriented Software Construction, 2nd edn. Prentice Hall

  58. Misra J (2001) A Discipline of Multiprogramming: Programming Theory for Distributed Applications. Springer, New York

    MATH  Google Scholar 

  59. Morgan C (1994) Programming from Specifications, 2nd edn. Prentice-Hall International, London

    MATH  Google Scholar 

  60. Morris FL, Jones CB (1984) An early program proof by Alan Turing. Ann Hist Comput 6:139–143

    Article  MathSciNet  MATH  Google Scholar 

  61. Nicolescu G, Mosterman P (2009) Model-Based Design for Embedded Systems (Computational Analysis, Synthesis, and Design of Dynamic Systems). CRC Press

  62. Nipkow T, Paulson LC, Wenzel M (2002) Isabelle/HOL – A Proof Assistant for Higher-Order Logic, vol 2283 of Lecture Notes in Computer Science. Springer

  63. Olderog ER (1981) Sound and complete Hoare-like calculi based on copy rules. Acta Inf 16:161–197

    Article  MathSciNet  MATH  Google Scholar 

  64. Olderog ER (1983) A characterization of Hoare’s logic for programs with Pascal-like procedures. In: Proc. 15th ACM Symp. on Theory of Computing (STOC). ACM, pp 320–329

  65. Owicki S, Gries D (1976) An axiomatic proof technique for parallel programs. Acta Inf 6:319–340

    Article  MathSciNet  MATH  Google Scholar 

  66. Owre S, Shankar N. Writing PVS proof strategies. In: Archer M, Vito BD, Muñoz C (eds) Design and Application of Strategies/Tactics in Higher Order Logics (STRATA 2003), number CP-2003-212448 in NASA Conference Publication, Hampton, VA, Sept. 2003. NASA Langley Research Center, pp 1–15

  67. Pnueli A (1977) The temporal logic of programs. In: Proc. 18th IEEE Symposium on Foundations of Computer Science, pp 46–57

  68. Pnueli A, Rosner R (1990) Distributed reactive systems are hard to synthesize. In: Proc. FOCS. IEEE Computer Society Press, pp 746–757

  69. Podelski A, Rybalchenko A (2004) Transition invariants. In: 19th IEEE Symp. on Logic in Computer Science (LICS). IEEE Computer Society, pp 32–41

  70. Queille JP, Sifakis J (1981) Specification and verification of concurrent systems in CESAR. In: Proceedings of the 5th International Symposium on Programming, Paris

  71. Rabin M (1972) Automata on infinite objects and Church’s problem. Trans. Amer. Math. Society, Providence RI

  72. Sagiv M, Reps TW, Wilhelm R (2002) Parametric shape analysis via 3-valued logic. ACM Trans Program Lang Syst 24(3):217–298

    Article  Google Scholar 

  73. Schneider-Kamp P, Giesl J, Serebrenik A, Thiemann R (2009) Automated termination proofs for logic programs by term rewriting. ACM Trans Comput Log 11(1):2:1–2:52

    Google Scholar 

  74. Seidl H, Wilhelm R, Hack S (2010) Übersetzerbau: Analyse und Transformation. Springer

  75. Spivey JM (1992) The Z Notation: A Reference Manual, 2nd edn. Prentice Hall

  76. Stephan W, Langenstein B, Nonnengart A, Rock G (2005) Verification support environment. In: Hutter D, Stephan W (eds) Mechanizing Mathematical Reasoning, vol 2605 of Lecture Notes in Computer Science. Springer, pp 476–493

  77. Thomas W (2009) Facets of synthesis: Revisiting Church’s problem. In: de Alfaro L (ed) Foundations of Software Science and Computational Structures (FOSSACS), vol 5504 of Lecture Notes in Computer Science. Springer, pp 1–14

  78. Turing AM (1949) On checking a large routine. In: Report of a Conference on High Speed Automatic Calculating Machines, Univ. Math. Lab., Cambridge, pp 67–69

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ernst-Rüdiger Olderog.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Olderog, ER., Wilhelm, R. Turing und die Verifikation. Informatik Spektrum 35, 271–279 (2012). https://doi.org/10.1007/s00287-012-0627-2

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00287-012-0627-2

Navigation