[发明专利]一种混合验证JavaScript程序正确性的方法无效
申请号: | 201310474324.4 | 申请日: | 2013-10-12 |
公开(公告)号: | CN103488571A | 公开(公告)日: | 2014-01-01 |
发明(设计)人: | 吴明晖;吕嘉;颜晖;应晶;陈天洲 | 申请(专利权)人: | 浙江大学城市学院 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 杜军 |
地址: | 310015 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种混合验证JavaScript程序正确性的方法。本发明包括以下步骤:将JavaScript程序划分为静态部分和动态部分两大部分;使用开放时态逻辑规约JavaScript程序的正确性;使用程序证明方法验证静态部分正确性和静态动态部分组合的正确性;使用模型检测方法验证动态部分的正确性。本发明验证方法能够适应JavaScript语言的多种语法特性和应用场合,既能支持自动化的模型检测工具,又能有效的降低状态搜索空间,有效提高JavaScript程序的验证效率。 | ||
搜索关键词: | 一种 混合 验证 javascript 程序 正确性 方法 | ||
【主权项】:
1.一种混合验证JavaScript程序正确性的方法,其特征在于包括以下步骤:步骤1.判断程序组件是否包含动态语法特性,若有,则程序组件划分为静态部分和动态部分两大部分;步骤2.将划分后的静态部分通过程序规约方法进行规约,使用开放时态逻辑对JavaScript程序进行形式化规约;开放时态逻辑扩展计算树逻辑,具体的通过引入新的路径算子和时态算子,扩展计算树逻辑的描述和推理能力,开放时态逻辑的语法使用BNF范式描述如下:
其中p属于命题公式集合;使用开放时态逻辑形式化规约JavaScript程序正确性:对于一段JavaScript程序代码P,程序规约表示成(pre,rely,post):其中pre是程序代码P执行前的前置条件,rely是程序代码P执行过程中的依赖条件,post是程序代码P执行完成后的后置条件,其中前置条件和依赖条件是程序代码P正确执行的假设,后置条件是程序代码P正确执行的承诺;步骤3.使用程序证明方法验证静态部分和静态动态组合的正确性,证明系统包括一个核心语言和一组证明规则;核心语言抽象描述JavaScript程序,证明系统中的程序证明方法定义如下:P : : = x ‾ = e ‾ | P 1 ; P 2 | P 1 < P 2 | if c then P 1 else P 2 | if c then P | while c do P ]]> 其中:
表示一组程序变量x1....,xn组成的向量,
表示一组表达式e1,...,en组成的向量,顺序执行表示成P1;P2,对于程序代码P1和P2,其中程序代码P1先执行,然后程序代码P2执行;动态部分插入静态部分表示成P1<P2:对于程序代码P1和P2,其中程序代码P1是静态代码,程序代码P2是动态代码;步骤4.步骤4.针对静态部分的程序规约,建立开放系统的有限状态机模型,其中静态部分抽象成开放系统的内部迁移,动态部分抽象成开放系统的外部迁移,外部迁移对开放系统的影响必须确保系统的正确性,并使用模型检测工具验证系统的正确性,如果验证正确则程序正确,如果发现错误则程序验证错误。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学城市学院,未经浙江大学城市学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310474324.4/,转载请声明来源钻瓜专利网。