一句话:提出磁盘并行图系统 Graspan,以边对中心计算模型在大程序图上计算动态传递闭包,提升过程间静态分析可扩展性。
针对系统代码(如 Linux)静态分析中,复杂过程间分析因实现复杂、可扩展性差而难以用于改进缺陷检查器的问题,本文从“大数据”视角重新审视过程间静态分析的可扩展性。作者将复杂代码分析转化为大数据分析,利用现代数据处理技术解决传统程序语言问题,并开发了 Graspan。Graspan 是一个基于磁盘的并行图系统,采用以边对为中心的计算模型,在非常大的程序图上计算动态传递闭包。该工作表明可将过程间分析任务建模为大规模图计算,从而为系统代码的复杂静态分析提供可扩展的实现路径。
There is more than a decade-long history of using static analysis to find bugs in systems such as Linux. Most of the existing static analyses developed for these systems are simple checkers that find bugs based on pattern matching. Despite the presence of many sophisticated interprocedural analyses, few of them have been employed to improve checkers for systems code due to their complex implementations and poor scalability. In this paper, we revisit the scalability problem of interprocedural static analysis from a "Big Data" perspective. That is, we turn sophisticated code analysis into Big Data analytics and leverage novel data processing techniques to solve this traditional programming language problem. We develop Graspan, a disk-based parallel graph system that uses an edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.