arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 1104.0644cs.SEcs.PL
收藏

基于指针分析和活堆分析的程序优化

Program Optimization Based Pointer Analysis and Live Stack-Heap Analysis

Mohamed A. El-Zawawy

摘要:

在本文中,我们提出了类型系统的流敏感指针分析,活堆栈堆(变量)分析和程序优化。用于活堆栈-堆分析的类型系统是指针分析的类型系统的丰富;该丰富具有添加到后一系统的类型的第二组件的形式。指针分析的结果被证明是有用的,通过使用它们在类型系统的活堆栈堆分析。用于程序优化的类型系统也是用于活堆栈-堆分析的类型系统的扩充,但是扩充采取了将转换组件添加到后一系统的推理规则的形式。实现程序优化的形式是死代码消除。一种形式的程序纠正可能间接地导致消除错误的代码(导致程序中止),这是死的。因此,程序优化可以导致程序校正。我们的类型系统具有组合和相对简单结构的优势。我们的工作的新颖性来自于这样一个事实,即我们的类型系统的程序优化相关联的优化版本的程序的理由(在类型派生的形式)的优化。这个理由在许多研究领域都非常受欢迎,比如认证代码(证明携带代码),这是这项工作的动机

英文摘要:

In this paper, we present type systems for flow-sensitive pointer analysis, live stack-heap (variables) analysis, and program optimization. The type system for live stack-heap analysis is an enrichment of that for pointer analysis; the enrichment has the form of a second component being added to types of the latter system. Results of pointer analysis are proved useful via their use in the type system for live stack-heap analysis. The type system for program optimization is also an augmentation of that for live stack-heap analysis, but the augmentation takes the form of a transformation component being added to inference rules of the latter system. The form of program optimization being achieved is that of dead-code elimination. A form of program correction may result indirectly from eliminating faulty code (causing the program to abort) that is dead. Therefore program optimization can result in program correction. Our type systems have the advantage of being compositional and relatively-simply structured. The novelty of our work comes from the fact that our type system for program optimization associates the optimized version of a program with a justification (in the form of a type derivation) for the optimization. This justification is pretty much appreciated in many research areas like certified code (proof-carrying code) which is the motivation of this work

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑