Section: New Results
Static Analysis via Abstract Interpretation of Multithreaded Programs
Participant : Pietro Ferrara.
Pietro Ferrara has written his PhD on static analysis of multithreaded programs via abstract interpretation. In this PhD, the design of a generic analyzer for multithreaded programs is presented. First of all, the happens-before memory model (as an over-approximation of the Java memory model) in fixpoint form is defined and we abstract it with a computable semantics. It is shown how to design a computable abstract semantics, and the correctness of the resulting analysis is proved in a formal way. Then we define and abstract a new property focused on the non-deterministic behaviors due to multithreading, e.g. the arbitrary interleaving during the execution of different threads. Different levels of determinism are defined, relating this property to the presence of data races. This theoretical framework is applied to Java. In particular, a concrete semantics of bytecode language is defined following its specification. Then it is abstracted in order to track the information required by the analysis of multithreaded programs. The core is an alias analysis that approximates references in order to identify threads, to check the accesses to the shared memory, and to detect when two threads own a common monitor thereby inferring which parts of the code cannot be executed in parallel. The generic analyzer described above has been fully implemented, leading to Checkmate, the first generic analyzer of Java multithreaded programs. Some experimental results are reported and deeply studied. An additional contribution is about the extension of an existing industrial generic analyzer, Clousot, to the checking of buffer overrun. It turns out that this analysis is scalable and precise. In summary, we present an application of an existing, industrial, and generic static analyzer to a property of practical interest, showing the strength of this approach in order to develop useful tools for developers.
Pietro Ferrara's report [11] summarizes his work in this topic. He defended his PhD on May 22, 2009.