Alex Aiken is the advisor for the work done by Mayur Naik on Chord which according to the site is a state-of-the-art static race detection tool for Java. This is cool because only concurrent programs will really make use of the current (and future) generations of multi-core, multi-proc machines. So if you are writing Java code which does any sort of concurrency, you owe it to your customers to spend the hour to watch the video and see if you can get any value out of this tool (which as of this moment is not publicly available, but they say ‘end of summer 2007 and it is barely that).
Not too many notes on this one because a lot of the discussion focuses on methods / logic and algorithms which don’t really interest me.
- Race – same location may be accessed by different threads simultaneously and at least one access is a write
- There is around a 20% false positive rate (which seems about the average)
- Not all races are bad (there is that whole ‘context matters’ thing again), sometimes they are intentional
- The number of bugs Chord finds is always less than the number of races because there is by definition more than one way to trigger one
- Because it is a static tool, you can use it on 3rd party libraries that your application might be dependent on