[发明专利]用于易变数据结构程序验证的形状图生成方法及装置在审
申请号: | 202011105846.3 | 申请日: | 2020-10-15 |
公开(公告)号: | CN112241258A | 公开(公告)日: | 2021-01-19 |
发明(设计)人: | 杨大润;张昱;杜准 | 申请(专利权)人: | 科大国创软件股份有限公司;安徽中科国创高可信软件有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/34 |
代理公司: | 合肥维可专利代理事务所(普通合伙) 34135 | 代理人: | 吴明华 |
地址: | 230088 安*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 数据结构 程序 验证 形状 生成 方法 装置 | ||
1.用于易变数据结构程序验证的形状图生成方法,其特征在于:包括如下步骤:
细化不同种类易变数据结构断言,并对细化后的断言种类简化断言描述方法;
按照预设优化顺序对不同断言种类进行形状图构造获取程序的初步形状图,所述不同断言种类的构造方法包括细化后的断言种类对应的形状图构造方法;
基于初步构造的形状图进行修正优化获取精准形状图。
2.根据权利要求1所获的用于易变数据结构程序验证的形状图生成方法,其特征在于:所述细化不同种类易变数据结构断言,包括:
遍历语法树,获取所有程序断言;
将断言范式化为析取范式,将每个析取分支的断言分拆为合取子式,每个子式分类为形状断言、数据断言、符号断言;
所述形状断言进一步分为形状内置谓词、表和环长度断言、指针距离断言、指针等于空断言、指针不等于空断言、指针相等断言、指针不等断言、悬空指针断言;
所述数据断言依据指针路径进一步分为一般指针、数据域指针、量化数据域指针、谓词指针、谓词数据域指针。
3.根据权利要求2所述的用于易变数据结构程序验证的形状图生成方法,其特征在于:所述细化后的断言种类对应的形状图构造方法,包括:对于指针相等断言,采用合并断言等式两边节点的方式进行形状图的构造。
4.根据权利要求3所述的用于易变数据结构程序验证的形状图生成方法,其特征在于:所述指针相等断言的形状图构造方法包括如下步骤:
将节点的出边指向的节点中暂时未构造的节点设为未知节点;
根据等式两边的节点类型将两个节点分为主体节点和客体节点,类型优先级从低到高依次为:悬空节点、空节点、谓词节点、结构节点、浓缩节点,优先级高的节点作为主体节点;
若等式两边的主体节点和客体节点是同一节点,则直接确定合并成功;
若客体节点是悬空节点,则将客体节点入边转移至主体节点,删除客体节点;
若主客体节点都为空节点,则直接确定合并成功;
若主客体节点都为结构节点,则将客体节点入边转移至主体节点,再对所有一一对应的出边指向的节点递归合并节点,有一个出边合并失败则当前节点合并失败,合并成功后删除客体节点;
若主体节点为浓缩节点,同时客体节点为结构节点且结构节点对应浓缩节点方向的出边指向入度1的悬空节点,这条出边不进行递归合并,合并成功后删除客体节点;
若客体节点为谓词节点,同时主体节点为结构节点且结构节点所有出边指向入度1的悬空节点,将主体节点所有出边指向的悬空节点替换为谓词节点,删除客体节点;
非上述情况则直接确定合并失败。
5.根据权利要求3所述的一种针对易变数据结构优化的程序验证方法,其特征在于:所述细化后的断言种类对应的形状图构造方法,还包括:对于指针距离断言的形状图构造方法包括如下步骤:
对于指针p和q,p沿next域到q的距离为n,则找到两个指针p、q在形状图上对应非悬空节点,计算p沿next域到q的距离的表达式e,合取e==n到当前子图的符号断言,p沿next域访问不到q则删除当前子图,找不到非悬空节点则按整体描述构造q。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于科大国创软件股份有限公司;安徽中科国创高可信软件有限公司,未经科大国创软件股份有限公司;安徽中科国创高可信软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011105846.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种GMP车间智能化监控管理系统
- 下一篇:具备红外功能的树脂组合物