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.
翻译:目前采用多种静态分析方法,从不同、独立的特性中得出多种静态分析,其重点是模块化和自动化的、独立的分析优化,而强制性方法则促进手册的、针对具体分析的优化。在本文中,我们介绍了一种新颖的静态分析方法,利用黑板系统的模块化,并结合了宣示和迫切技术。我们的方法允许互换,并插插插式扩展分析,以便改进稳健(i)性、精确性和可缩放性,并明确促成不兼容性分析的组合。我们的方法被纳入了OPAL框架,因此我们得以实施各种不同分析,包括一个比Doop(最新点分析框架)的对等分析更优的点分析。