[发明专利]一种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、分析结束。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国石油大学(华东),未经中国石油大学(华东)许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710097984.3/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top