Advanced Topics in Programming Languages Series: Effective Static Race Detection
Google Tech Talks
June 4, 2007
ABSTRACT
Concurrent programs are notoriously difficult to write and debug, a problem that is becoming acute as concurrency becomes more common. A fundamental and particularly insidious concurrency bug is a race: a condition in which a pair of threads simultaneously access the same memory location and at least one of those accesses is a write. Today's concurrent programs are riddled with races.
This talk presents a novel approach to detecting races in concurrent Java programs. The approach is sound in that it detects all races and is precise in that it misidentifies few non-races as races. The approach is also effective, finding tens to hundreds of serious and previously unknown synchronization bugs in real-world programs.
June 4, 2007
ABSTRACT
Concurrent programs are notoriously difficult to write and debug, a problem that is becoming acute as concurrency becomes more common. A fundamental and particularly insidious concurrency bug is a race: a condition in which a pair of threads simultaneously access the same memory location and at least one of those accesses is a write. Today's concurrent programs are riddled with races.
This talk presents a novel approach to detecting races in concurrent Java programs. The approach is sound in that it detects all races and is precise in that it misidentifies few non-races as races. The approach is also effective, finding tens to hundreds of serious and previously unknown synchronization bugs in real-world programs.