The pointer assertion logic engine

作者: Anders Møller , Michael I. Schwartzbach

DOI: 10.1145/378795.378851

关键词:

摘要: We present a new framework for verifying partial specifications of programs in order to catch type and memory errors check data structure invariants. Our technique can verify large class structures, namely all those that be expressed as graph types. Earlier versions were restricted simple special cases such lists or trees. Even so, our current implementation is fast the previous specialized tools.Programs are annotated with Pointer Assertion Logic, notation expressing properties program store. work logical tradition by encoding formulas monadic second-order logic. Validity these checked MONA tool, which also provide explicit counterexamples invalid formulas.To make verification decidable, requires loop function call In return, highly modular: every statement given analyzed only once.The main target applications safety-critical data-type algorithms, where cost annotating invariants justified value being able automatically complex program.

参考文章(39)
Thomas W. Reps, Mooly Sagiv, Michael Benedikt, A decidable logic for linked data structures ,(1999)
Albert R. Meyer, Weak monadic second order theory of succesor is not elementary-recursive Lecture Notes in Mathematics. pp. 132- 154 ,(1975) , 10.1007/BFB0064872
James C. Corbett, Matthew B. Dwyer, John Hatcliff, Robby, A Language Framework for Expressing Checkable Properties of Dynamic Software international workshop on model checking software. pp. 205- 223 ,(2000) , 10.1007/10722468_13
Michael Rodeh, Mooly Sagiv, Nurit Dor, Checking Cleanness in Linked Lists static analysis symposium. pp. 115- 134 ,(2000) , 10.1007/978-3-540-45099-3_7
Jan van Leeuwen, Formal models and semantics Elsevier , MIT Press. ,(1990)
Joseph M. Morris, A General Axiom of Assignment Springer, Dordrecht. pp. 25- 34 ,(1982) , 10.1007/978-94-009-7893-5_3
Tal Lev-Ami, Mooly Sagiv, TVLA: A System for Implementing Static Analyses static analysis symposium. pp. 280- 301 ,(2000) , 10.1007/978-3-540-45099-3_15
Pascal Fradet, Ronan Gaugne, Daniel Le Métayer, Static detection of pointer errors: An axiomatisation and a checking algorithm Programming Languages and Systems — ESOP '96. pp. 125- 140 ,(1996) , 10.1007/3-540-61055-3_33
Paul E. Black, Phillip J. Windley, Inference rules for programming languages with side effects in expressions Lecture Notes in Computer Science. pp. 51- 60 ,(1996) , 10.1007/BFB0105396
Nils Klarlund, Anders Møller, Michael I. Schwartzbach, MONA Implementation Secrets international conference on implementation and application of automata. pp. 182- 194 ,(2000) , 10.1007/3-540-44674-5_15