...
首页> 外文期刊>ACM SIGPLAN Notices: A Monthly Publication of the Special Interest Group on Programming Languages >Automatic verification of pointer programs using monadic second-order logic
【24h】

Automatic verification of pointer programs using monadic second-order logic

机译:使用Monadic二阶逻辑自动验证指针程序

获取原文
获取原文并翻译 | 示例
           

摘要

We present a technique for automatic verification of pointer programs based on a decision procedure for the monadic second-order logic on finite strings.We are concerned with a while-fragment of Pascal, which includes recursively-defined pointer structures but excludes pointer arithmetic.We define a logic of stores with interesting basic predicates such as pointer equality, tests for nil pointers, and garbage cells, as well as reachability along pointers.We present a complete decision procedure for Hoare triples based on this logic over loop-free code. Combined with explicit loop invariants, the decision procedure allows us to answer surprisingly detailed questions about small but non-trivial programs. If a program fails to satisfy a certain property, then we can automatically supply an initial store that provides a counterexample.Our technique had been fully and efficiently implemented for linear linked lists, and it extends in principle to tree structures. The resulting system can be used to verify extensive properties of smaller pointer programs and could be particularly useful in a teaching environment.
机译:我们提出了一种基于对有限字符串的单子二阶逻辑的决策过程来自动验证指针程序的技术,我们关注的是Pascal的while片段,它包括递归定义的指针结构,但不包括指针算术。使用有趣的基本谓词定义存储逻辑,例如谓词相等性,零指针测试和无用单元格,以及指针的可达性。基于无循环代码,我们基于此逻辑为Hoare三元组提供了完整的决策过程。结合显式循环不变式,决策过程使我们能够回答有关小型但非平凡程序的令人惊讶的详细问题。如果程序不能满足某个特定的属性,那么我们可以自动提供一个提供反例的初始存储区。我们的技术已经完全有效地用于线性链表,并且从原理上讲扩展到树结构。所得的系统可用于验证较小指针程序的广泛属性,并且在教学环境中可能特别有用。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号