首页> 外文学位 >Instrumentation Analysis: An Automated Method for Producing Numeric Abstractions of Heap-Manipulating Programs.
【24h】

Instrumentation Analysis: An Automated Method for Producing Numeric Abstractions of Heap-Manipulating Programs.

机译:仪器分析:一种用于生成堆操作程序的数字抽象的自动化方法。

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

摘要

A number of questions regarding programs involving heap-based data structures can be phrased as questions about numeric properties of those structures. A data structure traversal might terminate if the length of some path is eventually zero or a function to remove n elements from a collection may only be safe if the collection has size at least n.;In this thesis, we develop proof methods for reasoning about the connection between heap-manipulating programs and numeric programs. In addition, we develop an automatic method for producing numeric abstractions of heap-manipulating programs. These numeric abstractions are expressed as simple imperative programs over integer variables and have the feature that if a property holds of the numeric program, then it also holds of the original, heap-manipulating program. This is true for both safety and liveness. The abstraction procedure makes use of a shape analysis based on separation logic and has support for user-defined inductive data structures.;We also discuss a number of applications of this technique. Numeric abstractions, once obtained, can be analyzed with a variety of existing verification tools. Termination provers can be used to reason about termination of the numeric abstraction, and thus termination of the original program. Safety checkers can be used to reason about assertion safety. And bound inference tools can be used to obtain bounds on the values of program variables. With small changes to the program source, bounds analysis also allows the computation of symbolic bounds on memory use and computational complexity.
机译:有关涉及基于堆的数据结构的程序的许多问题可以表述为有关那些结构的数字属性的问题。如果某个路径的长度最终为零,则数据结构遍历可能会终止,或者从集合中删除n个元素的函数可能只有在集合的大小至少为n时才是安全的;在本论文中,我们开发了证明推理的证明方法。堆操作程序和数字程序之间的连接。此外,我们开发了一种自动方法,用于产生堆操作程序的数字抽象。这些数字抽象表示为整数变量上的简单命令式程序,其特征是,如果某个属性拥有数字程序,那么它也拥有原始的堆操作程序。安全性和活力性都是如此。抽象过程利用基于分离逻辑的形状分析,并支持用户定义的归纳数据结构。;我们还将讨论该技术的许多应用。一旦获得数字抽象,就可以使用各种现有的验证工具进行分析。终止证明可用于推断数字抽象的终止,从而终止原始程序。安全检查器可用于推断断言安全性。边界推断工具可用于获取程序变量值的边界。通过对程序源进行较小的更改,边界分析还可以计算有关内存使用和计算复杂性的符号边界。

著录项

  • 作者

    Magill, Stephen.;

  • 作者单位

    Carnegie Mellon University.;

  • 授予单位 Carnegie Mellon University.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2010
  • 页码 328 p.
  • 总页数 328
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号