Detecting Domain-Specific Coding Errors with Static Analysis

The latest generation of static-analysis tools use highly sophisticated whole-program analyses to find deep semantic problems. These advanced static-analysis tools have become essential for software developers because they have proven effective at finding serious flaws. An often under-appreciated aspect of these tools is that they are extensible. Programmers can, often with a little programming effort, dramatically increase the value they get from the tools. This paper describes some of the ways in which static-analysis tools can be extended.