[发明专利]一种用于Java软件的形式化验证方法及装置在审
申请号: | 202210998284.2 | 申请日: | 2022-08-19 |
公开(公告)号: | CN115357492A | 公开(公告)日: | 2022-11-18 |
发明(设计)人: | 赵永望;陆嘉晨;沈韬立;常瑞;任奎 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 杭州中成专利事务所有限公司 33212 | 代理人: | 李亦慈;唐银益 |
地址: | 310058 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 java 软件 形式化 验证 方法 装置 | ||
1.一种用于Java软件的形式化验证方法,其特征在于,包括
S1:获得Java程序源代码,并对Java程序源代码进行词法分析、语法分析和语义分析,生成Java扩展抽象语法树;
S2:解析出Java扩展抽象语法树中的常量、变量、继承关系和函数限定符,为其分配内存地址,生成中间表示代码;
S3:对Java程序需求文档进行自动化建模,翻译成对应的Java形式化规约,其中,形式化规约主要包括Java程序的表达不变式、安全性;
S4:解析Java程序规约,将形式化人员定义的Java程序规约转换成对应的Java程序规约的SMT表达式;
S5:解析步骤S3中的中间表示代码的指令含义,根据指令含义将代码转换为符号值,根据符号值转换为对应Java程序实现的SMT表达式;
S6:对S4中产生的Java程序规约的SMT表达式和S5中产生的Java程序实现的SMT表达式的精化关系进行求解,若存在精化关系,则说明通过形式化验证,否则生成对应用的反例用说明,得到验证结果;
S7:接受验证结果,生成形式化验证结果报告。
2.根据权利要求1所述的用于Java软件的形式化验证方法,其特征在于,所述的步骤S3中的Java程序规约包括Java程序的表达不变式、安全性。
3.根据权利要求1所述的用于Java软件的形式化验证方法,其特征在于,所述的步骤S1中,词法分析具体为收Java程序源代码,根据预定义地Java语言文法规则,将输入Java源代码字符串进行扫描和分析,转换为对应词素,并输出一个词法单元序列;所述的语法分析具体为:获得词法单元序列,并验证这个序列可以由源语言的文法生成,将词法单元序列中的词素生成抽象语法树;所述的语义分析具体为:接受抽象语法树,收集标识符的属性信息并对抽象语法树进行语义检查,同时输出一颗抽象语法树。
4.根据权利要求1所述的用于Java软件的形式化验证方法,其特征在于,所述的步骤S3中的对Java程序需求文档进行自动化建模的建模方法是根据所述软件需求文档生成并输出验证所需的Java程序规约。
5.根据权利要求1所述的用于Java软件的形式化验证方法,其特征在于,所述的步骤S4中的Java程序规约需要使用符号执行的方法转换为SMT表达式。
6.根据权利要求1所述的用于Java软件的形式化验证方法,其特征在于,所述的步骤S5中的Java程序实现需要使用符号执行的方法转换为SMT表达式。
7.根据权利要求1所述的用于Java软件的形式化验证方法,其特征在于,所述的步骤S7中的形式化验证结果报告包括错误数量、成功数量、错误信息详细说明、错误代码位置和验证方法名。
8.一种用于Java软件的形式化验证装置,其特征在于,包括:
Java语言编译器:用于获得Java程序源代码,并对Java程序源代码进行词法分析、语法分析和语义分析,生成Java扩展抽象语法树;
语法树解析器:用于解析出Java扩展抽象语法树中的常量、变量、继承关系和函数限定符,为其分配内存地址,生成中间表示代码;
文档建模器:用于对Java程序需求文档进行自动化建模,翻译成对应的Java形式化规约,其中,形式化规约主要包括Java程序的表达不变式、安全性;
Java程序规约解析器:用于解析Java程序规约,将形式化人员定义的Java程序规约转换成对应的Java程序规约的SMT表达式;
中间语言解释器:用于解析步骤S3中的中间表示代码的指令含义,根据指令含义将代码转换为符号值,根据符号值转换为对应Java程序实现的SMT表达式;SMT求解器:用于对S4中产生的Java程序规约的SMT表达式和S5中产生的Java程序实现的SMT表达式的精化关系进行求解,若存在精化关系,则说明通过形式化验证,否则生成对应用的反例用说明,得到验证结果;
Java程序漏洞检测文档生成器:用于接受验证结果,生成形式化验证结果报告。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210998284.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于无人机的船舶备件传送方法
- 下一篇:螺旋折流板异形管束管壳式换热器