Skip to main content
QUICK REVIEW

[論文レビュー] Program Optimization Based Pointer Analysis and Live Stack-Heap Analysis

Mohamed A. El-Zawawy|arXiv (Cornell University)|Apr 4, 2011
Logic, programming, and type systems参考文献 21被引用数 11
ひとこと要約

この論文は、フローフレンドリーなポインタ解析、ライブスタックヒープ解析、およびプログラム最適化を統合する構成的型システムを提示し、形式的根拠をもって不要コード削除を可能にする。ポインタ解析の型にライブスタックヒープ情報を組み込み、推論規則に変換部を追加することで、証明可能な最適化を提供し、間接的に誤ったコードを是正することができる。これは、証明同伴コードおよび検証済みコンパイルを支援する。

ABSTRACT

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

研究の動機と目的

  • コード変換に関する形式的推論を可能にする、構成的かつ構造的な型システムを設計すること。
  • ライブスタックヒープ解析をポインタ解析の拡張として統合し、変数の寿命をより正確に追跡可能にする。
  • 形式的根拠をもって不要コード削除を可能にし、最適化とプログラムの正しさの両方を向上させること。
  • 最適化の安全性を機械検証可能な証明として提供する型導出を提供することで、証明同伴コードを支援すること。
  • 各最適化ステップが静的解析に裏付けられ、検証可能な型導出を持つモジュラーなフレームワークを構築すること。

提案手法

  • フローフレンドリーなポインタ解析型システムを拡張し、ライブスタックヒープ変数を追跡する第2のコンポonentを追加する。
  • ポインタ解析の結果を基盤としてライブスタックヒープ解析を実行し、変数寿命の追跡精度を向上させる。
  • ライブスタックヒープ型システムに推論規則に変換部を追加し、コード最適化を表現する。
  • 変換部を適用して不要コードを削除し、有効な型導出によって最適化が正当化されるようにする。
  • 最適化を段階的かつ検証可能なステップで適用できるように、構成的構造を保証する。
  • 型導出を証明同伴アーティファクトとして活用し、最適化済みコードの実行時検証を可能にする。

実験結果

リサーチクエスチョン

  • RQ1どのようにしてポインタ解析を拡張し、構成的かつ型理論的枠組み内でライブスタックヒープ変数の追跡を可能にするか?
  • RQ2ライブスタックヒープ解析が、プログラム最適化の過程でより正確な不要コード削除を実現する役割を果たす仕組みは何か?
  • RQ3どのようにして型導出を用いて、恣意的な解析ではなく形式的根拠をもってプログラム最適化を正当化できるか?
  • RQ4提案された型システムは、証明同伴コードおよび証明可能なコンパイルをどのように支援するか?
  • RQ5型システムによる解析と最適化の統合は、誤った不要コードを削除することで、間接的にプログラムの是正を可能にするか?

主な発見

  • 提案された型システムは、型導出を用いて形式的根拠をもって不要コード削除を可能にし、最適化済みコードに対する信頼性を向上させる。
  • ポインタ解析に基づくライブスタックヒープ解析により、もはや必要でない変数をより正確に特定できるようになる。
  • 推論規則に組み込まれた変換部により、体系的かつ検証可能なコード最適化が可能になる。
  • フレームワークは、最適化の正当性に関する機械検証可能な証明を生成することで、証明同伴コードを支援する。
  • 不要コードの削除により、異常終了を引き起こす誤ったコードを除去することで、プログラムの信頼性が向上する可能性がある。
  • システムは構成的であり、構造的に比較的単純であるため、モジュラーな推論と拡張性が容易になる。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。