期刊文献+
共找到9篇文章
< 1 >
每页显示 20 50 100
A Shape Graph Logic and A Shape System 被引量:4
1
作者 李兆鹏 张昱 陈意云 《Journal of Computer Science & Technology》 SCIE EI CSCD 2013年第6期1063-1084,共22页
Analysis and verification of pointer programs are still difficult problems so far. This paper uses a shape graph logic and a shape system to solve these problems in two stages. First, shape graphs at every program poi... Analysis and verification of pointer programs are still difficult problems so far. This paper uses a shape graph logic and a shape system to solve these problems in two stages. First, shape graphs at every program point are constructed using an analysis tool. Then, they are used to support the verification of other properties (e.g., orderedness). Our prototype supports automatic verification of programs manipulating complex data structures such as splay trees, treaps, AVL trees and AA trees, etc. The proposed shape graph logic, as an extension to Hoare logic, uses shape graphs directly as assertions. It can be used in the analysis and verification of programs manipulating mutable data structures. The benefit using shape graphs as assertions is that it is convenient for acquiring the relations between pointers in the verification stage. The proposed shape system requires programmers to provide lightweight shape declarations in recursive structure type declarations. It can help rule out programs that construct shapes deviating from what programmers expect (reflected in shape declarations) in the analysis stage. As a benefit, programmers need not provide specifications (e.g., pre-/post-conditions, loop invariants) about pointers. Moreover, we present a method doing verification in the second stage using traditional Hoare logic rules directly by eliminating aliasing with the aid of shape graphs. Thus, verification conditions could be discharged by general theorem provers. 展开更多
关键词 shape graph logic program verification shape analysis automated theorem proving loop invariant inference
原文传递
一个程序验证器的设计和实现 被引量:10
2
作者 张志天 李兆鹏 +1 位作者 陈意云 刘刚 《计算机研究与发展》 EI CSCD 北大核心 2013年第5期1044-1054,共11页
形式验证是提高软件可信程度的重要方法,基于逻辑推理对程序性质进行严格的自动证明是当前的研究热点,但尚无可供工业界使用的产品,其根源在于自动定理证明方面的困难.介绍在通过程序分析建立起各程序点的形状图的基础上,如何利用形状... 形式验证是提高软件可信程度的重要方法,基于逻辑推理对程序性质进行严格的自动证明是当前的研究热点,但尚无可供工业界使用的产品,其根源在于自动定理证明方面的困难.介绍在通过程序分析建立起各程序点的形状图的基础上,如何利用形状图提供的信息来支持程序验证的方法.提出一种利用形状图信息来消除访问路径别名,使得指针程序中非指针部分的性质仍然可以用Hoare逻辑来进行验证的方法,并证明了该方法的可靠性.还提出一种在不使用自定义谓词的情况下,易变数据结构上数据性质的描述和验证方法.另外,介绍所设计并实现的基于上述方法的PointerC语言的程序验证器的原型.它不仅能自动验证操作易变数据结构程序的性质,也能自动验证使用一维数组的程序的性质. 展开更多
关键词 程序验证 HOARE逻辑 形状图逻辑 程序分析 分离逻辑
在线阅读 下载PDF
形状图理论的定理证明 被引量:3
3
作者 张昱 陈意云 李兆鹏 《计算机学报》 EI CSCD 北大核心 2016年第12期2460-2480,共21页
验证操作易变数据结构的指针程序仍面临很多挑战.数据结构中严重的指针别名显著地复杂化对操作这些结构的程序的推理.为分析和验证操作易变数据结构的指针程序,文中提出了形状图逻辑.形状图是描述程序中静态声明的堆指针变量和动态分配... 验证操作易变数据结构的指针程序仍面临很多挑战.数据结构中严重的指针别名显著地复杂化对操作这些结构的程序的推理.为分析和验证操作易变数据结构的指针程序,文中提出了形状图逻辑.形状图是描述程序中静态声明的堆指针变量和动态分配的结构体中指针域变量的指向的一种有向图,能准确表达指针的有效性和指针之间的相等性,可用于判断两个访问表达式是否是别名.形状图逻辑是Hoare逻辑的一种扩展,是一种直接将形状图作为程序中指针断言集的程序逻辑.该文研究形状图的等价理论和蕴含理论以及它们的判定方法和应用.首先,把形状图及其等价规则和蕴含规则分别类比为代数项及其等式规则和重写规则,像研究代数规范的理论那样来研究形状图理论.该文定义了形状图的语法理论和语义理论,定义了形状图重写系统及其终止性、局部合流性和合流性,然后得到基于形状图重写的形状图等价判定和蕴含判定的方法.其次,提出循环不变形状图和递归函数前后形状图的自动推断方法.借助形状图理论的判定方法,该文把一个基于抽象解释的推断循环不变式的一般方法改编成推断循环不变形状图的方法.由于计算终止的递归函数总有非递归的出口,可以先通过非递归路径得到函数的后形状图的初值,然后再在递归路径上迭代求解.从而,可以像推断循环不变形状图那样来推断递归函数的前后形状图.第三,参照Nelson-Oppen框架,提出形状图理论和整数理论组合的一种判定方法.对易变数据结构,除了关心数据结构各节点是否连成预定的形状外,往往还关心数据在这些节点间的排列等特性,它们不能脱离易变数据结构的形状特征而单独验证.为此,所提出的组合判定方法针对这类程序的验证条件的特点,利用程序分析阶段得到的形状图对验证条件的前件中的符号断言按形状图的节点分组;然后运用整数理论为各节点推导出尽可能多的性质;最后才交由定理证明器Z3去自动验证.这种方式有效地避免验证条件证明过程的不终止.基于形状图逻辑以及文中的工作,我们所开发的程序验证系统原型减轻了自动定理证明器的负担,并且能验证易变数据结构上较为复杂的程序,如有序循环双向链表、二叉排序树、伸展树、树堆、二叉平衡树和AA树的插入和删除函数. 展开更多
关键词 形状图逻辑 形状分析 程序验证 自动定理证明 循环不变式的推断
在线阅读 下载PDF
一种用于指针程序的形状分析方法 被引量:1
4
作者 刘刚 胡凯平 宋发兴 《计算机与现代化》 2012年第4期82-85,共4页
指针程序的分析一直是研究热点。本文提出一种基于形状图逻辑的形状分析方法,其中形状分析采用形状图来表达程序中指针的指向和相等关系,并用形状图逻辑来进行推理。形状图逻辑是一种把形状图看成有关指针的断言,并在此基础上对Hoare逻... 指针程序的分析一直是研究热点。本文提出一种基于形状图逻辑的形状分析方法,其中形状分析采用形状图来表达程序中指针的指向和相等关系,并用形状图逻辑来进行推理。形状图逻辑是一种把形状图看成有关指针的断言,并在此基础上对Hoare逻辑进行扩展而得到的程序逻辑。首先介绍所提出的形状图和形状图逻辑;然后在此基础之上,设计一种基于形状图逻辑的形状分析方法。 展开更多
关键词 形状图 形状图逻辑 HOARE逻辑 形状分析 程序分析
在线阅读 下载PDF
一种验证指针程序的方法 被引量:1
5
作者 张志天 陈意云 刘刚 《微型机与应用》 2011年第16期9-11,共3页
利用形状图逻辑和形状系统来解决指针程序的分析和验证中的困难。该方法要求程序员声明各种递归结构体类型参与构建的数据结构的形状,并声明指针变量所指向的形状,以便程序分析工具能建立各程序点的形状图,并以此来支持程序验证。探讨... 利用形状图逻辑和形状系统来解决指针程序的分析和验证中的困难。该方法要求程序员声明各种递归结构体类型参与构建的数据结构的形状,并声明指针变量所指向的形状,以便程序分析工具能建立各程序点的形状图,并以此来支持程序验证。探讨了在指针相等关系静态可确定的情况下,避免在Hoare逻辑上做复杂扩展的指针程序验证方法。 展开更多
关键词 HOARE逻辑 形状图逻辑 程序分析 分离逻辑
在线阅读 下载PDF
指针类型递归函数前后形状图的自动推断 被引量:3
6
作者 宋艳辉 李兆鹏 陈意云 《小型微型计算机系统》 CSCD 北大核心 2014年第4期759-764,共6页
在一个基于形状图逻辑的自动程序验证原型系统上,设计与实现了指针类型递归函数前后形状图的自动推断方法.该方法类似于循环不变形状图的推断方法,区别在于它首先沿着函数的非递归路径,从函数入口的函数前形状图推断函数出口的函数后形... 在一个基于形状图逻辑的自动程序验证原型系统上,设计与实现了指针类型递归函数前后形状图的自动推断方法.该方法类似于循环不变形状图的推断方法,区别在于它首先沿着函数的非递归路径,从函数入口的函数前形状图推断函数出口的函数后形状图的初值,然后沿着函数的递归路径对函数后形状图进行迭代求解.本文还设计了上述自动推断方法中需要用到的形状图之间蕴涵关系的判定方法.本文方法使得原型系统扩展到能够自动验证指针类型的递归函数. 展开更多
关键词 程序验证 形状图逻辑 形状分析 递归函数 不变式的自动推断
在线阅读 下载PDF
二叉树程序循环不变形状图的自动推断 被引量:2
7
作者 李云龙 罗奇鸣 陈意云 《小型微型计算机系统》 CSCD 北大核心 2017年第5期913-918,共6页
在一个基于形状图逻辑的C语言程序自动验证系统上,设计并实现了二叉树形状程序的循环不变形状图的自动推断方法.该方法与单链表程序循环不变形状图的推断方法的区别在于通过增加二叉树形状的等价和蕴含规则,使得在形状图的演算时支持二... 在一个基于形状图逻辑的C语言程序自动验证系统上,设计并实现了二叉树形状程序的循环不变形状图的自动推断方法.该方法与单链表程序循环不变形状图的推断方法的区别在于通过增加二叉树形状的等价和蕴含规则,使得在形状图的演算时支持二叉树中不确定方向的展开和折叠.此外,为了解决形状图变换规则变化给循环不变形状图推断带来的问题,还设计了算法用以判断在推断循环不变形状图的过程中是否使用新增的规则,并将判断算法融合到循环不变形状图推断流程中.本文方法使得系统支持自动推断二叉树指针程序的循环不变形状图. 展开更多
关键词 程序验证 形状图逻辑 形状分析 二叉树 循环不变形状图的自动推断
在线阅读 下载PDF
安全C语言验证器中形状系统的形状检查方法 被引量:1
8
作者 孙科 罗奇鸣 +1 位作者 李薛剑 陈意云 《小型微型计算机系统》 CSCD 北大核心 2019年第1期133-140,共8页
在一个基于霍尔逻辑和形状图逻辑的C语言自动验证器中,设计并实现了对形状图中所含易变数据结构的形状检查方法.本工作在验证器的形状系统中实现了显式形状检查与隐式形状检查,并通过引入不同的形状级别,使验证器能够根据不同的严格程... 在一个基于霍尔逻辑和形状图逻辑的C语言自动验证器中,设计并实现了对形状图中所含易变数据结构的形状检查方法.本工作在验证器的形状系统中实现了显式形状检查与隐式形状检查,并通过引入不同的形状级别,使验证器能够根据不同的严格程度及时发现程序中不符合形状定义的易变数据结构,避免对形状图逻辑的相关演算造成影响.此外,为分解易变数据结构中不同指针域带来的复杂性,形状检查方法引入了三阶段处理框架:形状分割、形状分析及形状推断,分别实现形状图的预处理,针对指针指向与节点类型等方面进行分析,以及根据相关规则推断易变数据结构的形状级别. 展开更多
关键词 程序验证 形状图逻辑 形状系统 形状检查
在线阅读 下载PDF
可编程序控制器梯形图的逻辑设计方法
9
作者 单荣圻 《江南大学学报(自然科学版)》 CAS 1990年第2期56-66,73,共12页
梯形图是可编程序控制器的重要程序设计方法,但它的设计方法还很少有人总结。本文提出二种梯形图的逻辑设计方法在工厂电气控制技术中对推广可编程序控制器的应用将有一定的参考价值。
关键词 逻辑设计 程序控制器 梯形图 对偶式梯形图
全文增补中
上一页 1 下一页 到第
使用帮助 返回顶部