Static analysis tools typically address the problem of excessive false positives by requiring programmers to explicitly annotate their code. However, when faced with incomplete annotations, many analysis tools are either too conservative, yielding false positives, or too optimistic, resulting in unsound analysis results. In order to flexibly and soundly deal with partially-annotated programs, we propose to build upon and adapt the gradual typing approach to abstract-interpretation-based program analyses. Specifically, we focus on null-pointer analysis and demonstrate that a gradual null-pointer analysis hits a sweet spot, by gracefully applying static analysis where possible and relying on dynamic checks where necessary for soundness. In addition to formalizing a gradual null-pointer analysis for a core imperative language, we build a prototype using the Infer static analysis framework, and present preliminary evidence that the gradual null-pointer analysis reduces false positives compared to two existing null-pointer checkers for Infer. Further, we discuss ways in which the gradualization approach used to derive the gradual analysis from its static counterpart can be extended to support more domains. This work thus provides a basis for future analysis tools that can smoothly navigate the tradeoff between human effort and run-time overhead to reduce the number of reported false positives.


翻译:平板分析工具通常处理过度假正数的问题,要求程序员明确说明其代码。然而,在遇到不完整的说明时,许多分析工具要么过于保守,产生虚假正数,要么过于乐观,导致分析结果不健全。为了灵活和妥善地处理部分附加说明的方案,我们提议以逐步打字方法为基础,将逐步打字方法调整为抽象口译方案分析。具体地说,我们侧重于无指点分析,并表明逐步进行无指针分析会达到一个甜点,尽可能优雅地进行静态分析,并在必要时依靠动态检查,以保持稳健。除了将逐步的无指数分析正规化,我们还利用“Infer”静态分析框架建立一个原型,并提出初步证据,证明逐步的无指数分析会减少假正数,而现有两个“Infer”对准程序分析是无效的。此外,我们讨论了如何将渐进式分析方法扩大用于从其静态对称对称中进行逐步分析,从而支持更多的领域。这项工作为未来分析工具提供了基础,从而减少了能够平稳地将人类努力与运行中转式平时平时平时平式平路的数字进行。

0
下载
关闭预览

相关内容

Linux导论,Introduction to Linux,96页ppt
专知会员服务
77+阅读 · 2020年7月26日
商业数据分析,39页ppt
专知会员服务
159+阅读 · 2020年6月2日
因果图,Causal Graphs,52页ppt
专知会员服务
246+阅读 · 2020年4月19日
《DeepGCNs: Making GCNs Go as Deep as CNNs》
专知会员服务
30+阅读 · 2019年10月17日
【深度学习视频分析/多模态学习资源大列表】
专知会员服务
91+阅读 · 2019年10月16日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
已删除
将门创投
5+阅读 · 2017年10月20日
Arxiv
0+阅读 · 2021年7月2日
Arxiv
0+阅读 · 2021年7月2日
Arxiv
0+阅读 · 2021年6月24日
Universal Transformers
Arxiv
5+阅读 · 2019年3月5日
Arxiv
23+阅读 · 2018年8月3日
Arxiv
5+阅读 · 2015年9月14日
VIP会员
相关VIP内容
Linux导论,Introduction to Linux,96页ppt
专知会员服务
77+阅读 · 2020年7月26日
商业数据分析,39页ppt
专知会员服务
159+阅读 · 2020年6月2日
因果图,Causal Graphs,52页ppt
专知会员服务
246+阅读 · 2020年4月19日
《DeepGCNs: Making GCNs Go as Deep as CNNs》
专知会员服务
30+阅读 · 2019年10月17日
【深度学习视频分析/多模态学习资源大列表】
专知会员服务
91+阅读 · 2019年10月16日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
相关资讯
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
已删除
将门创投
5+阅读 · 2017年10月20日
相关论文
Arxiv
0+阅读 · 2021年7月2日
Arxiv
0+阅读 · 2021年7月2日
Arxiv
0+阅读 · 2021年6月24日
Universal Transformers
Arxiv
5+阅读 · 2019年3月5日
Arxiv
23+阅读 · 2018年8月3日
Arxiv
5+阅读 · 2015年9月14日
Top
微信扫码咨询专知VIP会员