Modular collaborative program analysis in OPAL
Abstract: Current approaches combining multiple static analyses deriving different, independent properties focus either on modularity or performance. Whereas declarative approaches facilitate modularity and automated, analysis-independent optimizations, imperative approaches foster manual, analysis-specific optimizations. In this paper, we present a novel approach to static analyses that leverages the modularity of blackboard systems and combines declarative and imperative techniques. Our approach allows exchangeability, and pluggable extension of analyses in order to improve sound(i)ness, precision, and scalability and explicitly enables the combination of otherwise incompatible analyses. With our approach integrated in the OPAL framework, we were able to implement various dissimilar analyses, including a points-to analysis that outperforms an equivalent analysis from Doop, the state-of-the-art points-to analysis framework.
Resources
BibTeX
@inproceedings {HKR+, title = {{Modular collaborative program analysis in OPAL}}, author = {Helm, Dominik and Kübler, Florian and Reif, Michael and Eichberg, Michael and Mezini, Mira}, booktitle = {{Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering}}, series = {FSE}, pages = {184-196}, year = {2020}, doi = {10.1145/3368089.3409765}, url = {http://dx.doi.org/10.1145/3368089.3409765}, }