近日,《美国计算机学会编程语言与系统》杂志发表了南京大学研究团队的最新研究成果,研究人员提出了一项新的选择性上下文敏感技术。该技术将程序中会影响指针分析精度和速度的方法分别定义为精度关键与速度关键方法,并提供了一套理论框架用于有效识别这些关键方法,最终基于一套可解释规则选择为其中哪些关键方法应用上下文,以获得高效、精准的指针分析。
程序分析是保障大规模复杂软件可靠性、安全性、性能等质量指标的关键技术,而指针分析是为程序分析搭建脚手架的基础,几乎所有全程序分析都要依赖于指针分析的结果,如何使指针分析运行得更快且准确一直是过去40年来该领域公认的研究重点和难点。上下文敏感技术是提升指针分析精度的关键技术,在过去30年来一直是指针分析方向的学术热点,然而上下文敏感技术给指针分析带来精度提升的同时又带来性能上的很大开销。
大量实验表明,该技术可大幅度加速指针分析,平均情况下,在保留通用上下文敏感指针分析95%精度的同时可加速25.5倍(最快可加速88倍之多)。此外,对于一些复杂程序,该技术可在取得上下文敏感精度的同时,运行速度甚至能超越非上下文敏感,打破了过去30年指针分析只能在二者之间取舍平衡的局面,改变了关于“上下文敏感指针分析速度无法超越非上下文敏感技术”的认识,为未来快速精准指针分析研究提供了新的思路和方向。
据悉,该研究成果将依托“华为—南大下一代程序设计语言实验室”合作项目助力华为公司在关键领域自主创新。
相关论文信息:https://doi.org/10.1145/3381915
版权声明:凡本网注明“来源:中国科学报、科学网、科学新闻杂志”的所有作品,网站转载,请在正文上方注明来源和作者,且不得对内容作实质性改动;微信公众号、头条号等新媒体平台,转载请联系授权。邮箱:shouquan@stimes.cn。