Applying Static Analysis to Large-Scale, Multi-Threaded Java Programs

10 years 8 months ago
Applying Static Analysis to Large-Scale, Multi-Threaded Java Programs
Static analysis is a tremendous help when trying to find faults in complex software. Writing multi-threaded programs is difficult, because the thread scheduling increases the program state space exponentially, and an incorrect thread synchronization produces faults that are hard to find. Program checkers have become sophisticated enough to find faults in real, large-scale software. In particular, Jlint, a very fast Java program checker, can check packages in a highly automated manner. The original version, Jlint1, still lacked full support for synchronization statements in Java. We extended Jlint1's model to include synchronizations on arbitrary objects, and named our version Jlint2. Our statistical analysis proves that these extensions are relevant and useful. Applying Jlint2 to various large software packages, including commercial packages from Trilogy, found 12 faults, two of which related to multi-threading.
Cyrille Artho, Armin Biere
Added 23 Aug 2010
Updated 23 Aug 2010
Type Conference
Year 2001
Authors Cyrille Artho, Armin Biere
Comments (0)