Software Technology Group @ TU Darmstadt

Modular collaborative program analysis in OPAL

by Dominik Helm, Florian Kübler, Michael Reif, Michael Eichberg, and Mira Mezini

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},
}