首页> 外文期刊>Theory and Practice of Logic Programming >Shape Neutral Analysis of Graph-based Data-structures
【24h】

Shape Neutral Analysis of Graph-based Data-structures

机译:基于图的数据结构的形状中立分析

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

摘要

Malformed data-structures can lead to runtime errors such as arbitrary memory access or corruption. Despite this, reasoning over data-structure properties for low-level heap manipulating programs remains challenging. In this paper we present a constraint-based program analysis that checks data-structure integrity, w.r.t. given target data-structure properties, as the heap is manipulated by the program. Our approach is to automatically generate a solver for properties using the type definitions from the target program. The generated solver is implemented using a Constraint Handling Rules (CHR) extension of built-in heap, integer and equality solvers. A key property of our program analysis is that the target data-structure properties are shape neutral, i.e., the analysis does not check for properties relating to a given data-structure graph shape, such as doubly-linked-lists versus trees. Nevertheless, the analysis can detect errors in a wide range of data-structure manipulating programs, including those that use lists, trees, DAGs, graphs, etc. We present an implementation that uses the Satisfiability Modulo Constraint Handling Rules (SMCHR) system. Experimental results show that our approach works well for real-world C programs.
机译:格式错误的数据结构可能导致运行时错误,例如任意内存访问或损坏。尽管如此,对低级堆操作程序的数据结构属性进行推理仍然具有挑战性。在本文中,我们提出了一种基于约束的程序分析,可以检查数据结构的完整性。给定目标数据结构属性,因为堆是由程序操纵的。我们的方法是使用目标程序中的类型定义自动为属性生成求解器。生成的求解器使用内置堆,整数和相等求解器的约束处理规则(CHR)扩展实现。程序分析的关键属性是目标数据结构属性是形状中性的,即,该分析不检查与给定数据结构图形状有关的属性,例如双链表与树。尽管如此,该分析仍可以检测各种数据结构操作程序中的错误,包括使用列表,树,DAG,图形等的那些。我们介绍了一种使用可满足性模块约束处理规则(SMCHR)系统的实现。实验结果表明,我们的方法适用于实际的C程序。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号