一种面向线性约束代码的有界可达性验证方法

    公开(公告)号:CN105808429A

    公开(公告)日:2016-07-27

    申请号:CN201610122074.1

    申请日:2016-03-03

    Applicant: 南京大学

    CPC classification number: G06F11/3608

    Abstract: 本发明公开了一种面向线性约束代码的有界模型验证方法,包括如下步骤:步骤1:构建代码的控制流程图CFG状态模型;步骤2:结合步骤1中构建的CFG状态模型,从程序的起始状态起,验证代码的CFG状态模型在有界步数K之内是否可达,直到K步之内的所有路径遍历结束或者某条路径可达为止;最后给出验证结果。本发明使用了SAT,SMT和IIS反馈等技术对代码模型的可达性验证过程进行了优化,可以有效缩短代码的验证时间和减少待寻找路径的数目,较现有的DFS算法的可达性验证效率更高,可以帮助软件测试人员更高效地进行代码的验证工作。

    一种基于约束求解的智能电网系统鲁棒性验证方法

    公开(公告)号:CN105224736B

    公开(公告)日:2018-02-16

    申请号:CN201510606520.1

    申请日:2015-09-22

    Applicant: 南京大学

    Abstract: 本发明公开了一种基于约束求解的智能电网系统鲁棒性验证方法。本发明通过模拟输电线路失效的情形,分析每一种输电线路失效的情形下电网是否安全。分析电网是否安全的过程步骤如下:首先构建SAT约束编码,然后由SAT求解器求解,根据求解得到的解构建SMT约束编码,最后通过SMT求解器求解。假如SMT求解器不可解,则重新通过SAT求解器求解一组新的解构建SMT约束编码,直到SAT求解器也不可解。当SAT求解器不可解时,表示该种输电线路失效的情形下电网不安全,当SMT求解器可解,表示该种输电线路失效的情形下,电网安全。本发明能够快速对大规模的电网系统进行完备的鲁棒性验证,有效节约时间和人力成本。

    一种将程序代码转换成数据约束的方法和装置

    公开(公告)号:CN107180193A

    公开(公告)日:2017-09-19

    申请号:CN201710480725.9

    申请日:2017-06-22

    Applicant: 南京大学

    Abstract: 本发明公开了一种将程序代码转换成数据约束的方法和装置。该方法首先将程序代码转换成中间指令集,然后将中间指令集进行细化拆分,细化拆分时将原变量定义指令中涉及的复杂类型的变量细化拆分成多个简单类型的变量,然后将简单类型的变量再进一步细化成简单类型的地址指针变量和简单类型的指针指向变量,最后再将相应的变量定义指令细化拆分成针对简单类型的地址指针变量和简单类型的指针指向变量的内存分配指令和初始化数据存储指令,然后提取细化拆分后的中间指令集中的存取指令、算术指令和比较指令作为数据约束。

    一种基于约束求解的智能电网系统鲁棒性验证方法

    公开(公告)号:CN105224736A

    公开(公告)日:2016-01-06

    申请号:CN201510606520.1

    申请日:2015-09-22

    Applicant: 南京大学

    Abstract: 本发明公开了一种基于约束求解的智能电网系统鲁棒性验证方法。本发明通过模拟输电线路失效的情形,分析每一种输电线路失效的情形下电网是否安全。分析电网是否安全的过程步骤如下:首先构建SAT约束编码,然后由SAT求解器求解,根据求解得到的解构建SMT约束编码,最后通过SMT求解器求解。假如SMT求解器不可解,则重新通过SAT求解器求解一组新的解构建SMT约束编码,直到SAT求解器也不可解。当SAT求解器不可解时,表示该种输电线路失效的情形下电网不安全,当SMT求解器可解,表示该种输电线路失效的情形下,电网安全。本发明能够快速对大规模的电网系统进行完备的鲁棒性验证,有效节约时间和人力成本。

    一种将程序代码转换成数据约束的方法和装置

    公开(公告)号:CN107180193B

    公开(公告)日:2020-03-27

    申请号:CN201710480725.9

    申请日:2017-06-22

    Applicant: 南京大学

    Abstract: 本发明公开了一种将程序代码转换成数据约束的方法和装置。该方法首先将程序代码转换成中间指令集,然后将中间指令集进行细化拆分,细化拆分时将原变量定义指令中涉及的复杂类型的变量细化拆分成多个简单类型的变量,然后将简单类型的变量再进一步细化成简单类型的地址指针变量和简单类型的指针指向变量,最后再将相应的变量定义指令细化拆分成针对简单类型的地址指针变量和简单类型的指针指向变量的内存分配指令和初始化数据存储指令,然后提取细化拆分后的中间指令集中的存取指令、算术指令和比较指令作为数据约束。

Patent Agency Ranking