需求驱动指向分析技术一般用于受到严格时间或内存限制的环境。提高需求驱动指向分析的流敏感度,可使一些变量得到准确的指向关系,但实践中存在具有较强流与数据依赖的大型软件系统,较难识别出对目标变量的指向关系产生贡献的程序语句。为此,提出一种流敏感的程序表示方法,通过定义一种上下文无关语言可达性的概念,搜索目标变量的流敏感指向关系。开发一种Seeker工具,能够为用户感兴趣的变量计算指向集合。实验结果表明,需求驱动的指向分析算法提高了流敏感上下文非敏感指向分析的效率。
指向分析是一种广泛应用于编译器优化、软件的测试和验证、安全性分析的静态分析技术。指向分析的目标是计算变量的引用与分配的对象之间的指向关系。它的实现采用经典的数据流迭代分析框架,利用不动点算法,在程序的控制流图(ControlFlowGraph,CFG)上,根据每个CFG结点上定义的转移函数,迭代地传播变量的指向关系,直到所有变量的指向集合都不再发生变化,即到达一个不动点。转移函数定义了在每个CFG结点前后变量指向集合之间的关系。虽然流敏感分析是提高指向分析精度的主要手段,全程序的流敏感指向分析是一项资源密集、计算密集的分析工作,无法适应具有严格的时间或内存限制的环境,如即时编译器和交互式开发环境等。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !