[发明专利]一种C程序中条件表达式的数据流分析方法在审
申请号: | 201710097984.3 | 申请日: | 2017-02-23 |
公开(公告)号: | CN106909506A | 公开(公告)日: | 2017-06-30 |
发明(设计)人: | 董玉坤 | 申请(专利权)人: | 中国石油大学(华东) |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 266580 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 程序 条件 表达式 数据流 分析 方法 | ||
1.一种C程序中条件表达式的数据流分析方法,其特征在于,该解决方法包括以下几个步骤:
A、总结程序中各类条件表达式,并归纳出相关的语法特征;
B、应用抽象语法树描述条件表达式的语法;
C、采用区间运算方法对条件表达式进行数据流分析。
2.根据权利要求1所述的C程序中条件表达式的数据流分析方法,其特征在于,条件表达式的一般形式为:表达式1?表达式2:表达式3,所述步骤A中的总结程序中各类条件表达式,并归纳出相关的语法特征的具体过程如下:
A1、按照表达式1是否会对变量取值有修改,分为无副作用表达式1、有副作用表达式1两种类型;
A2、根据表达式2是否是空表达式,分为空表达式2与平凡表达式2两种类型;
A3、根据表达式3是否是空表达式,分为空表达式3与平凡表达式3两种类型。
3.根据权利要求1所述的C程序中条件表达式的数据流分析方法,其特征在于,所述步骤B中的应用抽象语法树描述条件表达式的语法的具体过程如下:
B1、将条件表达式的语法表示为:LogicalORExpression()[“?”[Expression()]“:”ConditionalExpression()];
B2、采用CParser为被测程序生成抽象语法树,并对被测程序中的所有条件表达式生成对应的抽象语法子树。
4.根据权利要求1所述的采用区间运算方法对C程序中条件表达式的数据流分析方法,其特征在于,所述步骤C中对条件表达式进行数据流分析的具体过程如下:
C1、判断条件表达式生成对应的抽象语法子树中根节点的孩子结点数目,如果孩子结点数目为1,则将条件表达式的取值设置为全集区间,分析终止;
C2、在分析之前将活跃变量的取值区间信息暂存,采用区间运算技术分析表达式1的取值区间,并分析出表达式1对活跃变量副作用,如果表达式1对某些活跃变量产生了副作用,则将这些活跃变量新的取值区间替换原来的取值区间;
C3、如果表达式1的取值区间与区间[-∞,-1]∪[1,+∞]的交集不为空,而且表达式1的取值区间与区间[0,0]的交集为空,而且表达式2不是空表达式,则转C4;如果表达式1的取值区间是[0,0],而且表达式3不是空表达式,则转C5;如果表达式1的取值区间与区间[-∞,-1]∪[1,+∞]的交集不为空,而且表达式1的取值区间与区间[0,0]的交集也不为空,则转C6;否则,将条件表达式的取值设置为全集区间,终止分析;
C4、基于更新后的活跃变量的取值区间信息,采用区间运算技术分析表达式2的取值区间,并将表达式2的取值区间作为条件表达式的取值区间,如果表达式2对活跃变量产生了副作用,则将这些活跃变量新的取值区间替换原来的取值区间;转C10;
C5、基于更新后的活跃变量的取值区间信息,采用区间运算技术分析表达式3的取值区间,并将表达式3的取值区间作为条件表达式的取值区间,如果表达式3对活跃变量产生了副作用,则将这些活跃变量新的取值区间替换原来的取值区间;转C10;
C6、如果表达式3为空表达式,则转C4;如果表达式2为空表达式,则转C5;否则转C7;
C7、基于更新后的活跃变量的取值区间信息,采用区间运算技术分析表达式2的取值区间,如果表达式2对活跃变量产生了副作用,则先将原有活跃变量的取值区间进行备份,再将这些活跃变量新的取值区间与原来的取值区间的并作为新的取值区间;
C8、基于备份的活跃变量的取值区间信息,采用区间运算技术分析表达式3的取值区间,如果表达式3对活跃变量产生了副作用,则将这些活跃变量新的取值区间与原来的取值区间的并作为新的取值区间;
C9、将表达式2的取值区间与表达式3的取值区间的并作为条件表达式的取值区间;
C10、分析结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国石油大学(华东),未经中国石油大学(华东)许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710097984.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种陶瓷吊烧支架
- 下一篇:一种磁性材料冷却装置