剪枝与下推异常流分析
编程语言
2016-11-18 v1
摘要
在存在异常的情况下进行静态推理以及关于异常效应的推理具有挑战性:异常流由传统的控制流分析和指向分析相互决定。我们从两个角度应对分析异常流的挑战。首先,从剪枝控制流(包括正常和异常)的角度,我们为具有全功能异常的面向对象语言推导出了一个下推框架。与传统分析不同,它允许精确匹配抛出者 (throwers) 与捕获者 (catchers)。其次,从剪枝指向信息的角度,我们将抽象垃圾回收推广到面向对象程序,并辅以活性分析。随后,我们将这些技术无缝编织到增强的可达性计算中,从而产生高精度的异常流分析,即使对于大型应用程序也不会变得难以处理。我们评估了我们的剪枝下推异常流分析,并将其与在大规模标准 Java 基准测试上建立的现有分析进行了比较。结果表明,我们的分析在合理的分析时间内显著提高了优于传统分析的精度。
引用
@article{arxiv.1409.3108,
title = {Pruning, Pushdown Exception-Flow Analysis},
author = {Shuying Liang and Weibin Sun and Matthew Might and Andy Keep and David Van Horn},
journal= {arXiv preprint arXiv:1409.3108},
year = {2016}
}
备注
14th IEEE International Working Conference on Source Code Analysis and Manipulation