Dataflow Analysis for Concurrent Programs using Datarace Detection

Funded by NSF Award CCF-0811512


Advances in static algorithms for program optimization and error detection have shown that compiler technology can dramatically improve the reliability and performance of computer systems. However, most of these algorithmic advances are limited to sequential programs and ignore the challenges introduced by concurrency, where the need for static checking and potential for optimization are the greatest.

The broad goal of Radar is to develop scalable and precise analysis techniques for concurrent programs. Achieving scalability and precision at the same time, however, is difficult because there is a widely acknowledged tension between these two goals. To address this challenge, our general methodology will be to design analyses that are sound and scalable first (likely at the expense of precision), and then to iteratively refine these analyses by empirically identifying the common concurrent programming idioms where our analyses lose precision, and developing analysis techniques targeted at these idioms.

Our research will lead to the following contributions: