首页> 外文学位 >Towards a practical shape analysis for recursive data structures.
【24h】

Towards a practical shape analysis for recursive data structures.

机译:走向递归数据结构的实用形状分析。

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

摘要

Pointers are variables that store addresses of other variables. Pointer analysis determines what addresses can be stored in pointer variables. Many compiler optimizations need to check if different operations may access the same memory location. The presence of pointers makes this task difficult, because they allow different accesses to reference same location.;Variables have types and some types contain other variables called fields. Shape analysis is a specialized pointer analysis that determines structural properties of data structures connected by pointer fields. Recursive data structures, such as linked lists and binary trees, are created by objects of self-referential types---types that contain fields pointing to variables of the same type.;Many shape analysis algorithms are based on graphical abstractions. They use node summarization algorithms, based on predefined patterns between neighboring objects, to summarize unknown-size data structures. An object can be part of only a single pattern. These algorithms do not scale well for self-referential types with many pointer fields; where objects do not have perfect matching patterns, some fields end up being represented inaccurately.;To overcome this problem, we present an abstraction based on path aliasing information, called alias relationships. An object can be part of multiple alias relationships. We present a systematic way of defining alias relationships and a shape analysis algorithm based on these relationships.;Our results are promising, showing improved accuracy compared to state-of-the-art alternatives on multiple programs using recursive data structures with many pointer fields.;We also provide an overview of another contribution, the Cetus compiler infrastructure which we developed to facilitate various compiler research. Our algorithm is implemented using Cetus.
机译:指针是存储其他变量地址的变量。指针分析确定哪些地址可以存储在指针变量中。许多编译器优化都需要检查不同的操作是否可以访问相同的内存位置。指针的存在使此任务变得困难,因为它们允许对同一位置的不同访问。变量具有类型,某些类型包含称为字段的其他变量。形状分析是一种专门的指针分析,它确定由指针字段连接的数据结构的结构属性。递归数据结构(例如链表和二叉树)是由自引用类型的对象创建的,自引用类型的对象包含指向相同类型变量的字段。许多形状分析算法都基于图形抽象。他们基于相邻对象之间的预定义模式使用节点汇总算法来汇总未知大小的数据结构。一个对象只能是单个模式的一部分。这些算法不适用于具有许多指针字段的自引用类型。在对象没有完美匹配模式的情况下,某些字段最终会不准确地表示出来。为了解决此问题,我们提出了一种基于路径别名信息的抽象,称为别名关系。一个对象可以是多个别名关系的一部分。我们提供了一种定义别名关系的系统方式以及基于这些关系的形状分析算法。我们的结果是有希望的,与使用多个指针字段的递归数据结构的多个程序的最新替代方法相比,它显示出更高的准确性。 ;我们还概述了另一个贡献,即我们开发的Cetus编译器基础结构,以便利各种编译器研究。我们的算法是使用Cetus实现的。

著录项

  • 作者

    Lee, Sang Ik.;

  • 作者单位

    Purdue University.;

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

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号