Systemizing Interprocedural Static Analysis of Large-scale Systems Code with Graspan

Systemizing Interprocedural Static Analysis of Large-scale Systems Code with Graspan
复制标题

使用 Graspan 系统化大型系统代码的过程间静态分析

DOI:
10.1145/3466820
复制
发表时间:
2021-07
期刊:
ACM Transactions on Computer Systems, (TOCS'21)
影响因子:
--
通讯作者:
Xu Guoqing Harry
Xu Guoqing Harry
中科院分区:
其他
文献类型:
--
作者:
Zuo Zhiqiang;Wang Kai;Hussain Aftab;Sani Ardalan Amiri;Zhang Yiyu;Lu Shenming;Dou Wensheng;Wang Linzhang;Li Xu;ong;Wang Chenxi;Xu Guoqing Harry

文献摘要

参考文献

相似文献

使用静态分析在Linux等系统中找到错误有十多年的历史。这些系统为这些系统开发的大多数现有静态分析都是简单的检查器,可以根据模式匹配找到错误。尽管存在
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 article, 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 propose 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. We develop two backends for Graspan, namely, Graspan-C running on CPUs and Graspan-G on GPUs, and present their designs in the article. Graspan-C can analyze large-scale systems code on any commodity PC, while, if GPUs are available, Graspan-G can be readily used to achieve orders of magnitude speedup by harnessing a GPU’s massive parallelism. We have implemented fully context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases written in multiple languages such as Linux and Apache Hadoop demonstrates that their Graspan implementations are language-independent, scale to millions of lines of code, and are much simpler than their original implementations. Moreover, we show that these analyses can be used to uncover many real-world bugs in large-scale systems code.
DOI: 10.1145/2594291.2594320
发表时间: 2014-06
期刊: Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation
影响因子: --
作者:
Y. Smaragdakis;George Kastrinis;G. Balatsouras
通讯作者: Y. Smaragdakis;George Kastrinis;G. Balatsouras
DOI: 10.1109/tpds.2013.111
发表时间: 2014-06
影响因子: 5.3
作者:
Jianlong Zhong;Bingsheng He
通讯作者: Jianlong Zhong;Bingsheng He
DOI: 10.4230/lipics.ecoop.2016.26
发表时间: 2016
期刊: --
影响因子: --
作者:
Yue Zhao;Guoyang Chen;C. Liao;Xipeng Shen
通讯作者: Yue Zhao;Guoyang Chen;C. Liao;Xipeng Shen
DOI: 10.1145/3192366.3192378
发表时间: 2018-06
期刊: Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation
影响因子: --
作者:
Cheng Cai;Qirun Zhang;Zhiqiang Zuo;Khanh Nguyen;G. Xu;Z. Su
通讯作者: Cheng Cai;Qirun Zhang;Zhiqiang Zuo;Khanh Nguyen;G. Xu;Z. Su
DOI: 10.1145/1265530.1265564
发表时间: 2007-06
期刊: Proceedings of the twenty-sixth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
影响因子: --
作者:
R. Alur
通讯作者: R. Alur