[发明专利]一种复杂符号运算的等价变换方法在审
申请号: | 201410119795.8 | 申请日: | 2014-03-27 |
公开(公告)号: | CN103914301A | 公开(公告)日: | 2014-07-09 |
发明(设计)人: | 黄俊飞;李峰;宫云战;王雅文;金大海 | 申请(专利权)人: | 北京邮电大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 李迪 |
地址: | 100876 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 复杂 符号 运算 等价 变换 方法 | ||
技术领域
本发明涉及软件测试中的符号执行技术领域,尤其涉及一种复杂符号运算的等价变换方法。
背景技术
1976年,James C.King等人提出符号执行技术用于判断程序的正确性。符号执行使用符号作为输入,执行程序,输出符号表达式。由于符号可以代表任意输入,因此,每个符号执行的结果等同于大量的、同属于一类的测试用例。这样就可以将所有的测试用例按照符号执行的结果进行划分。如果符号执行的结果全都是正确的,则所有的测试用例都是正确的,从而路径不可达判定和测试用例生成,但无论怎么应用符号执行技术,分析符号执行结果的语义都是一个重要的问题。
符号执行的结果表现为一组符号表达式,表达式中包含各种运算,例如,+、-、×、/、%、>、>>等等,分析符号表达式的语义非常困难,特别是一些复杂的运算,故现有的方式增加了符号表达式的处理难度。
发明内容
本发明所要解决的技术问题是如何充分降低符号表达式的处理难度的关键问题。
为此目的,本发明提出了一种复杂符号运算的等价变换方法,包括具体以下步骤:
S1:定义简单运算和复杂运算,其中,简单运算为+、-、×,复杂运算为除去所述简单运算以外的所有其他运算;
S2:依据预设变换原则进行变换及处理。
具体地,所述预设变换原则包括:变换前后逻辑等价以及复杂运算变换为简单运算。
进一步地,所述步骤S2进一步包括:利用乘法交换律、乘法分配率、消去相同项、指数表示和/或消去括号的方式将变换后的所述简单运算转换为规范的符号表达式。
为此目的,本发明提出了一种复杂符号运算的等价变换装置,包括:
定义模块,用于定义简单运算和复杂运算,其中,简单运算为+、-、×,复杂运算为除去所述简单运算以外的所有其他运算;
变换及处理模块,用于依据预设变换原则进行变换及处理。
具体地,所述预设变换原则包括:变换前后逻辑等价以及复杂运算变换为简单运算。
进一步地,还包括转换模块,用于利用乘法交换律、乘法分配率、消去相同项、指数表示和/或消去括号的方式将变换后的所述简单运算转换为规范的符号表达式。
通过采用本发明所公开一种复杂符号运算的等价变换方法,由于复杂的运算在逻辑上可以转化为简单运算,因此,提出等价变换的方法,将复杂运算转化为逻辑等价的简单运算。即只要能处理简单运算,就能处理复杂运算,从而大大降低了符号表达式的处理难度,然后进一步进行简单符号运算的处理方法,具有处理的简易型。本发明还公开了一种复杂符号运算的等价变换装置。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了本发明实施例中的一种复杂符号运算的等价变换方法的步骤流程图;
图2示出了本发明实施例中的一种复杂符号运算的等价变换装置的结构示意图;
图3示出了本发明实施例中的示例程序片段对应的控制流程图。
具体实施方式
下面将结合附图对本发明的实施例进行详细描述。
符号执行时一种重要的静态分析技术,即以符号作为输入,模拟程序的执行,并以符号表达式作为输出,在应用符号执行技术时,必然要分析符号表达式的语义,所以必须考虑到表达式中出现的所有运算,而其中的复杂运算更是分析的难点。由于复杂运算在语义上等同于简单运算的组合,所以本文提出等价变换的方法,将复杂运算转换为简单运算,这样只需实现简单运算的处理,就可以处理所有的运算,从而大大降低了符号表达式的处理难度。
为了更好的理解与应用本发明提出的一种复杂符号运算的等价变换方法,下面以图示进行示例。
如图1所示,本发明提供了一种复杂符号运算的等价变换方法,包括具体以下步骤:
步骤S1:定义简单运算和复杂运算,其中,简单运算为+、-、×,复杂运算为除去简单运算以外的所有其他运算;
步骤S2:依据预设变换原则进行变换及处理。其中,预设变换原则包括:变换前后逻辑等价以及复杂运算变换为简单运算。
进一步地,步骤S2进一步包括:利用乘法交换律、乘法分配率、消去相同项、指数表示和/或消去括号的方式将变换后的简单运算转换为规范的符号表达式。
如图2所示,本发明提供了一种复杂符号运算的等价变换装置,包括:定义模块201以及变化及处理模块202。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京邮电大学,未经北京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410119795.8/2.html,转载请声明来源钻瓜专利网。