Skip to main content
QUICK REVIEW

[論文レビュー] Pushdown Control-Flow Analysis of Higher-Order Programs

Christopher Earl, Matthew Might|arXiv (Cornell University)|Jul 24, 2010
Formal Methods in Verification参考文献 19被引用数 35
ひとこと要約

本稿は、無限スタックを有するCESKマシンを抽象化することで、高階関数プログラムのためのプッシュダウン制御フローアナリシス(PDCFA)フレームワークを導入する。これにより、リターンフローのマージを回避し、正確で多変種の解析が可能になる。主な貢献は、PDA構築とCFL到達可能性を用いた、決定可能で多項式時間のプッシュダウンベースの制御フローアナリシス手法であり、高い精度と効率性を両立する。

ABSTRACT

Context-free approaches to static analysis gain precision over classical approaches by perfectly matching returns to call sites---a property that eliminates spurious interprocedural paths. Vardoulakis and Shivers's recent formulation of CFA2 showed that it is possible (if expensive) to apply context-free methods to higher-order languages and gain the same boost in precision achieved over first-order programs. To this young body of work on context-free analysis of higher-order programs, we contribute a pushdown control-flow analysis framework, which we derive as an abstract interpretation of a CESK machine with an unbounded stack. One instantiation of this framework marks the first polyvariant pushdown analysis of higher-order programs; another marks the first polynomial-time analysis. In the end, we arrive at a framework for control-flow analysis that can efficiently compute pushdown generalizations of classical control-flow analyses.

研究の動機と目的

  • 有限状態の制御フローアナリシスにおけるリターンフローのマージという根本的問題に対処すること。これは、誤ったインタープロシージャルパスを生じさせ、結果の不正確さを引き起こす。
  • 有限のコンテキストスタックに依存する古典的なコンテキストセンシティブ解析(例:0CFA)の限界を克服すること。これらは必然的にリターンフローの情報をマージしてしまう。
  • スタックベースのリターンコンテキストを無期限に保持するフレームワークを開発することにより、決定可能性を損なわずに高階関数プログラムの正確な解析を可能にすること。
  • 多変種の精度と多項式時間の複雑性を両立すること。これにより、CFA2のような従来の手法(単変種かつ指数時間)の主な欠点を解消すること。
  • 抽象機械をプッシュダウンオートマトン(PDA)としてモデル化し、CFL到達可能性を用いて到達可能性クエリに答えることで、決定可能でスケーラブルな制御フローアナリシス手法を提供すること。

提案手法

  • ストアは束縛するが、スタック(継続)は抽象化しないことで、コンcreteなCESKマシンを抽象化し、無限状態系を生成する。
  • 制御状態をDyck状態グラフで追跡する抽象解釈を構築し、制御フローマイグレーションの有効なシーケンスを表現する。
  • 抽象化されたCESKマシンを、合法的な制御状態シーケンスの言語を認識するプッシュダウンオートマトン(PDA)に変換する。
  • CFL到達可能性技術を用いる。具体的には、PDAの言語とターゲット状態を表す正則言語の積をとることで、到達可能性を決定し、制御フロークエリに答える。
  • PDA構築の最適化とε閉包、状態グラフ圧縮の活用により、複雑性を二重指数的から多項式に低減する。
  • 異なる呼び出しコンテキストを追跡する多変種バージョンの解析を導入し、単変種手法よりも高い精度を実現する。

実験結果

リサーチクエスチョン

  • RQ1無限スタックコンテキストを保持することで、プッシュダウン制御フローアナリシスは高階関数プログラムにおけるリターンフローのマージを排除できるか?
  • RQ2多項式時間で動作し、多変種の精度を維持する高階関数プログラムのための決定的制御フローアナリシスを設計することは可能か?
  • RQ3プッシュダウンオートマトンと文脈自由言語技術を用いて、無限スタックを有する高階関数プログラムの制御フローをどのようにモデル化・推論できるか?
  • RQ4無限スタックを有するCESKマシンの抽象解釈は、決定的で効率的な制御フローアナリシスフレームワークを生み出せるか?
  • RQ5プッシュダウン制御フローアナリシスとCFA2などの既存手法との関係は何か?また、精度とパフォーマンスの点でそれらの限界をどのように克服するか?

主な発見

  • 提案されたプッシュダウン制御フローアナリシスフレームワークは、プログラムスタックを無限プッシュダウンシステムとしてモデル化することで、リターンフローのマージを完全に排除し、正確で多変種の解析を実現する。
  • 到達可能性クエリがPDA言語と正則言語の積の非空チェックに還元されるため、解析は決定可能である。これは決定可能な問題である。
  • Dyck状態グラフの構築とCFL到達可能性の適用により、最悪ケースの時間計算量がO(n⁶)の効率的解析が可能になる(単変種の場合)。
  • フレームワークは単変種と多変種の両方の精度をサポートしており、後者は高階関数プログラムにおける最初の多変種プッシュダウン解析である。
  • 最良ケースでは多項式時間の複雑性を達成しており、高階関数プログラムにおける最初の多項式時間プッシュダウン制御フローアナリシスである。
  • 古典的な制御フローアナリシスを一般化し、スタックベースのリターンコンテキストを保持することで、有限状態の抽象化よりも制御およびデータフローの追跡をより正確に可能にする。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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