2008 · 125 citations · 16 references
ComputingComputer ScienceFormal MethodsProgramming LanguagesSoftware EngineeringAbstract Syntax TreesControl-flow AnalysisData-flow AnalysisDeductive VerificationRecursion TheoryContext-sensitive AnalysisRecursive Systems
We present a new, precise technique for fully path- and context-sensitive program analysis. Our technique exploits two observations: First, using quantified, recursive formulas, path- and context-sensitive conditions for many program properties can be expressed exactly. To compute a closed form solution to such recursive constraints, we differentiate between observable and unobservable variables, the latter of which are existentially quantified in our approach. Using the insight that unobservable variables can be eliminated outside a certain scope, our technique computes satisfiability-and validity-preserving closed-form solutions to the original recursive constraints. We prove the solution is as precise as the original system for answering may and must queries as well as being small in practice, allowing our technique to scale to the entire Linux kernel, a program with over 6 million lines of code. Copyright © 2008 ACM.
16
Symbolic model checking: 1020 States and beyond
Jerry R. Burch, E. M. Clarke, Kenneth L. McMillan et al. · Information and Computation · 1992 · 2.7K citations
Precise interprocedural dataflow analysis via graph reachability
Thomas Reps, Susan Horwitz, Mooly Sagiv · 1995 · 1.2K citations
Automatically Validating Temporal Safety Properties of Interfaces
2001 · 605 citations
Manuvir Das, Sorin Lerner, Mark Seigle · 2002 · 554 citations
Thomas A. Henzinger, Ranjit Jhala, Rupak Majumdar et al. · ACM SIGPLAN Notices · 2014 · 483 citations