[发明专利]一种对源代码形式化验证方法有效
| 申请号: | 202211570303.8 | 申请日: | 2022-12-08 |
| 公开(公告)号: | CN115658549B | 公开(公告)日: | 2023-03-07 |
| 发明(设计)人: | 赵永望;章喆;姚历智;赵健宏 | 申请(专利权)人: | 浙江望安科技有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 绍兴市寅越专利代理事务所(普通合伙) 33285 | 代理人: | 潘敏 |
| 地址: | 312000 浙江省绍兴市柯桥区齐贤街道柯*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 源代码 形式化 验证 方法 | ||
1.一种对源代码形式化验证方法,其特征在于:包括输入生成器、符号执行器、规约生成器、规约匹配器、形式化验证规约库、规约学习器、规约筛选器、自然语言转换器、代码验证器、验证报告生成器,所述输入生成器将源代码作为输入,生成多个将变量和函数参数值随机化的代码文件;
所述符号执行器用于读取上述代码文件,解析出文件集合,其中每个文件包含单个函数的输入状态、执行函数及输出状态;
所述规约生成器用于读取上述文件集合,生成每个函数对应的原始形式化规约;
所述规约匹配器接受原始规约集合后,从所述形式化验证规约库中调用符合上文生成的原始规约的形式化验证规约,并通过规约匹配器生成名称、性质相近的规约集合,用以扩充原始规约集合;
所述规约学习器将上述扩充后的规约集合输入,利用模型学习算法对规约集进行调整筛选,并输出调整后的规约;
所述规约筛选器将需求文档、接口文档通过自然语言转换器转换为规范文档后,和上文生成的规约集合一起传输至规约筛选器中,筛选出每一条函数最终对应的规约;
所述代码验证器用于对所有的源代码及其形式化规约进行形式化验证,验证是否相符,并通过所述验证报告生成器生成验证报告。
2.根据权利要求1所述的一种对源代码形式化验证方法,其特征在于:所述输入生成器用于接收验证所述源代码,对所述源代码进行分解,生成多个代码函数文件,每个所述代码文件均为一组可读的计算机语言指令。
3.根据权利要求2所述的一种对源代码形式化验证方法,其特征在于:所述符号执行器用于接受生成的代码文件,将所述代码文件解析出代码函数的集合,单个集合包含某一函数的输入状态、执行函数、及输出状态,将集合以文件方式打包后传输至模拟学习器中。
4.根据权利要求1所述的一种对源代码形式化验证方法,其特征在于:所述规约生成器用于函数的预处理,生成待验证函数列表,并对列表中的每个函数进行函数规约初始化,生成原始规约。
5.根据权利要求1所述的一种对源代码形式化验证方法,其特征在于:所述形式化验证规约库基于检测的形式化规约的集合,包括不同语言文法规则的形式化描述。
6.根据权利要求1所述的一种对源代码形式化验证方法,其特征在于:所述规约匹配器用于将上一步生成的原始规约与形式化规约库中的规约进行匹配,并生成不同类型的符合规约集合。
7.根据权利要求1所述的一种对源代码形式化验证方法,其特征在于:所述规约学习器用于接受规约集合,通过规约集合准确可靠地学习源代码,并自动生成源代码中每个函数对应的原始形式化规约。
8.根据权利要求1所述的一种对源代码形式化验证方法,其特征在于:所述自然语言转换器用于接收需求文档、接口文档等,将需求文档、接口文档转化为使用形式语言描述的需求规范文档、接口规范文档,并将规范文档传输至规约筛选器中。
9.根据权利要求1所述的一种对源代码形式化验证方法,其特征在于:所述规约筛选器是用于筛选、判断每一条函数对应的规约,并将集合传输到代码验证器中。
10.根据权利要求9所述的一种对源代码形式化验证方法,其特征在于:所述代码验证器用于验证所有函数及对应的规约是否相符。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江望安科技有限公司,未经浙江望安科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211570303.8/1.html,转载请声明来源钻瓜专利网。





