Dynamic inference of polymorphic lock types

  • Authors:
  • James Rose;Nikhil Swamy;Michael Hicks

  • Affiliations:
  • Computer Science Department, University of Maryland, College Park, MD;Computer Science Department, University of Maryland, College Park, MD;Computer Science Department, University of Maryland, College Park, MD and University of Maryland Institute for Advanced Computer Studies(UMIACS)

  • Venue:
  • Science of Computer Programming - Special issue: Concurrency and synchronization in Java programs
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

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.