ACM SIGSOFT Software Engineering Notes · 2005 · 14 citations · 19 references
Program CheckingEngineeringVerificationComputer-aided VerificationSoftware EngineeringSoftware AnalysisFormal VerificationData ScienceManagementData IntegrationData ManagementDataflow AnalysisData FlowRuntime VerificationVery Large DatabaseKnowledge DiscoveryComputer EngineeringEager Dataflow AnalysisComputer ScienceStatic Program AnalysisPredicated LatticesProgram AnalysisData EngineeringAutomated ReasoningSoftware TestingFormal MethodsSymbolic ExecutionData Modeling
Dataflow analyses sacrifice path-sensitivity for efficiency and lead to false positives when used for verification. Predicate refinement based model checking methods are path-sensitive but must perform many expensive iterations to find all the relevant facts about a program, not all of which are naturally expressed and analyzed using predicates. We show how to join these complementary techniques to obtain efficient and precise versions of any lattice-based dataflow analysis using predicated lattices . A predicated lattice partitions the program state according to a set of predicates and tracks a lattice element for each partition. The resulting dataflow analysis is more precise than the eager dataflow analysis without the predicates.In addition, we automatically infer predicates to rule out imprecisions. The result is a dataflow analysis that can adaptively refine its precision. We then instantiate this generic framework using a symbolic execution lattice , which tracks pointer and value information precisely. We give experimental evidence that our combined analysis is both more precise than the eager analysis in that it is sensitive enough to prove various properties, as well as much faster than the lazy analysis, as many relevant facts are eagerly computed, thus reducing the number of iterations.This results in an order of magnitude improvement in the running times from a purely lazy analysis.
19
Patrick Cousot, Radhia Cousot · 1977 · 6.1K citations
Programming Language Theory, Actual Computations, Declarative Programming +10
Systematic design of program analysis frameworks
Patrick Cousot, Radhia Cousot · 1979 · 1.6K citations · Full text
Thomas A. Henzinger, Ranjit Jhala, Rupak Majumdar et al. · 2002 · 1.1K citations
Precise interprocedural dataflow analysis via graph reachability
Thomas Reps, Susan Horwitz, Mooly Sagiv · 1995 · 1.1K citations
Thomas Ball, Sriram K. Rajamani · 2002 · 919 citations