|M.Sc Student||Abramovich Evgeny|
|Subject||Static Mining of Common Concurrency Patterns|
|Department||Department of Computer Science||Supervisor||Professor Eran Yahav|
|Full Thesis text|
We present a framework for static mining of synchronization patterns from large scale software repositories. The main idea is to use static analysis for extracting synchronization patterns from a large number of client programs using a concurrent component, and aggregating the extracted patterns to obtain the common synchronization patterns in the code base. These patterns can reveal both the correct usage and examples of incorrect usage to programmers using the concurrent component. Our analysis uses automata-based abstraction to capture sequences of API operations and synchronization operations. By combining information about the sequence of API calls with synchronization operations, we uncover common synchronization patterns used for the underlying components. We address both lock-based synchronization and lock-free patterns. We have implemented our approach in a tool called SynchMiner based on the WALA static analysis framework, and applied it to identify 6 major patterns by analyzing 23 complete real-world concurrent libraries and also different 10000 class files with concurrency.