[发明专利]基于高精度静态程序分析的循环上界计算方法在审
申请号: | 202210655377.5 | 申请日: | 2022-06-10 |
公开(公告)号: | CN115098162A | 公开(公告)日: | 2022-09-23 |
发明(设计)人: | 王豫;徐雯楚;张弛;徐安孜;王林章 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F8/75 | 分类号: | G06F8/75 |
代理公司: | 南京知识律师事务所 32207 | 代理人: | 张苏沛 |
地址: | 210093 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 高精度 静态 程序 分析 循环 上界 计算方法 | ||
本发明公开了一种基于高精度静态程序分析的循环上界计算方法,步骤1:定位程序中的循环语句并识别循环控制变量;步骤2:分析循环变量的数据依赖关系;步骤3:对循环上界依赖表达式中变量的可能值进行分析;步骤4:递归计算循环依赖表达式的可能值,其中对于表达式中的普通变量则调用步骤3的方法分析出具体值;步骤5:依据循环结构归纳循环上界的公式计算最终结果。本方法对于循环相关变量来自于形参的情况可分析到调用点的实参;本方法可计算由一些使用频率较高的基本表达式排列组合形成的复杂表达式的结果;本方法可计算内层循环的循环相关变量是外层循环控制变量的情况,针对一些使用频率较高模式的嵌套循环能给出较精确的结果。
技术领域
本发明属于软件工程领域,涉及静态程序分析技术和循环上界分析技术,特别涉及一种基于高精度静态程序分析的循环上界计算方法。
背景技术
循环结构是在一定条件下反复执行某段程序的流程结构,被反复执行的程序被称为循环体。循环语句是由循环体及循环的终止条件两部分组成的。循环上界指的是循环语句的最多执行次数。判断循环上界最大值,对于实时系统十分重要,过多的循环执行次数会导致程序执行缓慢,系统无法实时响应,所以很多应用场景要求对循环上界进行约束,通过静态程序分析估算程序的循环上界可以在不运行程序的情况下分析循环最多执行次数,并对循环上界次数超过阈值的循环语句给出警报,从而在不运行程序的情况下评估程序的运行效率或者提示开发者对循环语句进行优化。
本发明使用到的关键技术有数据流分析。数据流分析首先需要构建控制流图来反映所有基本块执行流,以及构建函数调用图来反映函数调用的关系。根据变量在程序的控制流图、函数调用图上如何传播,进一步收集、计算和分析得到信息。
本发明公开一种基于静态程序分析的流敏感、上下文敏感的循环上界分析方法。首先定位程序中的循环语句并识别循环控制变量,其次分析循环变量的数据依赖关系,然后对循环上界计算依赖表达式中变量的可能值进行分析,之后递归计算循环上界计算依赖表达式的可能值,最后依据循环结构归纳循环上界的公式并根据循环上界所依赖表达式的取值计算最终结果。
发明内容
目前对于循环语句的分析,很多都是侧重于验证程序的正确性,如验证循环语句是否是死循环。而对于循环上界的计算,目前只能针对循环依赖表达式为常量以及循环结构是简单循环的情况,而对于包含复杂表达式和嵌套循环的循环语句,无法计算较为精确的循环上界结果。为解决上述问题,本发明采用数据流分析以及递归算法,对复杂循环依赖表达式的值进行了分析计算,并归纳总结了不同循环模式的循环上界计算方法,本发明具体通过以下技术方案来实现:
一种基于高精度静态程序分析的循环上界计算方法,其特征在于,包括以下步骤:
步骤1):定位程序中的循环语句并识别循环控制变量;通过静态程序分析定位程序中的循环语句,识别循环语句的模式,根据for语句、while语句、do-while语句的语法模式,提取不同模式循环语句中的循环控制变量;
步骤2):分析循环变量的数据依赖关系;根据for语句、while语句、do-while语句的语法模式,分析循环变量的数据依赖关系,找出所有循环上界计算所依赖的表达式,包括分析循环初始表达式、循环终止表达式以及循环增量表达式;
步骤3):对循环上界依赖表达式中变量的可能值进行分析;进行过程内和过程间的数据流分析,对基本类型变量的可能值进行分析,在数据流分析过程中需要计算表达式的值则调用下一步骤即步骤4)的方法进行计算;
步骤4):递归计算循环依赖表达式的可能值;其中对于表达式中的普通变量则调用步骤3)的方法分析出具体值;
步骤5):依据循环结构归纳循环上界的公式计算最终结果;根据for语句、while语句、do-while语句的语法模式,使用所述步骤4)的方法分析计算循环上界依赖表达式的可能值,分别针对简单循环、嵌套循环、连锁循环归纳计算循环上界的公式并计算最终结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210655377.5/2.html,转载请声明来源钻瓜专利网。