ACM SIGPLAN Notices · 2017 · 16 citations · 18 references
ComputingComputer ScienceCompilersFormal MethodsProgramming LanguagesAbstract InterpretationControl-flow AnalysisData-flow AnalysisStatic AnalysisStatic Code AnalysisSyntax AnalysisContext-free GrammarsContext-sensitive AnalysisRecurrence AnalysisRecursionRecursive FunctionsRegular GrammarStatic Control-flow AnalysisSymbolic Analysis
Compositional recurrence analysis (CRA) is a static-analysis method based on a combination of symbolic analysis and abstract interpretation. This paper addresses the problem of creating a context-sensitive interprocedural version of CRA that handles recursive procedures. The problem is non-trivial because there is an "impedance mismatch" between CRA, which relies on analysis techniques based on regular languages (i.e., Tarjan's path-expression method), and the context-free-language underpinnings of context-sensitive analysis. We show how to address this impedance mismatch by augmenting the CRA abstract domain with additional operations. We call the resulting algorithm Interprocedural CRA (ICRA). Our experiments with ICRA show that it has broad overall strength compared with several state-of-the-art software model checkers.
18
Patrick Cousot, Radhia Cousot · 1977 · 6.2K citations
Automatic discovery of linear restraints among variables of a program
Patrick Cousot, Nicolas Halbwachs · 1978 · 1.6K citations
A unified approach to global program optimization
Gary A. Kildall · 1973 · 901 citations
Program analysis via graph reachability
Thomas Reps · Information and Software Technology · 1998 · 330 citations
Fast Algorithms for Solving Path Problems
Robert E. Tarjan · Journal of the ACM · 1981 · 284 citations · Full text