3 ms·
Static analysis does not do a great job of solving the problems with C. It is great for finding 1994-2004 era C vulnerabilities. It's rather useless at finding
by lawnchair_larry 10y ago
Static analysis does not do a great job of solving the problems with C. It is great for finding 1994-2004 era C vulnerabilities. It's rather useless at finding the problems we deal with today. To do so requires complete intraprocedural analysis and overcoming NP hardness.
- pron 10y agoSound static analysis can prove the absence of all undefined behavior. The theoretical problem isn't NP-hard but uncomputable in general, but that doesn't matter as most real instances are easy, and most of those that cannot be completely automatically proven can be proven with the addition of some annotations by the user. In the worst case, some sound static analyzers would fall to a manual proof in a proof assistant -- which is, undeniably overkill and very costly -- but even without it, the number of bugs is reduced almost to zero, and the places that the analyzer cannot prove are reported.