Article ID | Journal | Published Year | Pages | File Type |
---|---|---|---|---|
9657398 | Science of Computer Programming | 2005 | 18 Pages |
Abstract
We present FindLocks, an approach for automatically proving the absence of data races in multi-threaded Java programs, using a combination of dynamic and static analysis. The program in question is instrumented so that when executed it will gather information about locking relationships. This information is then used to automatically generate annotations needed to type check the program using the Race-Free Java type system. Programs that type check are sure to be free from races. We call this technique dynamic annotation inference. We describe the design and implementation of our approach, and our experience applying the tool to a variety of Java programs. We have found that when using a reasonably comprehensive test suite, which is easy for small programs but harder for larger ones, the approach generates useful annotations.
Related Topics
Physical Sciences and Engineering
Computer Science
Computational Theory and Mathematics
Authors
James Rose, Nikhil Swamy, Michael Hicks,