2010 · 19 citations · 28 references
ComputingComputer ScienceAlgorithmsProgramming LanguagesSoftware EngineeringControl-flow AnalysisStatic AnalysisStatic Code AnalysisSymbolic ExecutionType CheckingType SystemsEfficiencyPrecisionStatic Type CheckingType Analysis
Static analysis designers must carefully balance precision and efficiency. In our experience, many static analysis tools are built around an elegant, core algorithm, but that algorithm is then extensively tweaked to add just enough precision for the coding idioms seen in practice, without sacrificing too much efficiency. There are several downsides to adding precision in this way: the tool's implementation becomes much more complicated; it can be hard for an end-user to interpret the tool's results; and as software systems vary tremendously in their coding styles, it may require significant algorithmic engineering to enhance a tool to perform well in a particular software domain.
28
Symbolic execution and program testing
James C. King · Communications of the ACM · 1976 · 3K citations · Full text
Patrice Godefroid, Nils Klarlund, Koushik Sen · ACM SIGPLAN Notices · 2005 · 2.1K citations
Koushik Sen, Darko Marinov, Gul Agha · 2005 · 1.7K citations
Systematic design of program analysis frameworks
Patrick Cousot, Radhia Cousot · 1979 · 1.6K citations · Full text