Skip to main content
QUICK REVIEW

[論文レビュー] A Simple and Scalable Static Analysis for Bound Analysis and Amortized Complexity Analysis

Moritz Sinn, Florian Zuleger|arXiv (Cornell University)|Jan 23, 2014
Software Engineering Research被引用数 3
ひとこと要約

本稿では、損失のあるベクトル加算システム(VASS)を用いて抽象プログラムモデルから直接的に境界を導出することにより、アマortized複雑さ解析を達成するスケーラブルな静的境界解析を提示する。本稿は、レキシコグラフィック順序関数の新規な応用により、コンponents間の算術的依存関係を捉え、高価な推論ツールに依存せずに正確なアマortized境界を可能にする。また、実世界のCコードのベンチマークにおいて、先行ツールと比較して優れた性能とスケーラビリティを示している。

ABSTRACT

We present the first scalable bound analysis that achieves amortized complexity analysis. In contrast to earlier work, our bound analysis is not based on general purpose reasoners such as abstract interpreters, software model checkers or computer algebra tools. Rather, we derive bounds directly from abstract program models, which we obtain from programs by comparatively simple invariant generation and symbolic execution techniques. As a result, we obtain an analysis that is more predictable and more scalable than earlier approaches. Our experiments demonstrate that our analysis is fast and at the same time able to compute bounds for challenging loops in a large real-world benchmark. Technically, our approach is based on lossy vector addition systems (VASS). Our bound analysis first computes a lexicographic ranking function that proves the termination of a VASS, and then derives a bound from this ranking function. Our methodology achieves amortized analysis based on a new insight how lexicographic ranking functions can be used for bound analysis.

研究の動機と目的

  • 命令型プログラムにおけるリソース境界およびアマortized複雑さ解析のスケーラブルで予測可能な静的解析の開発を目的とする。
  • 抽象インタプリターやコンピュータ代数システムなどの汎用的推論ツールに依存する従来のアプローチの限界を克服することを目的とする。
  • レキシコグラフィック順序関数のコンponents間の算術的依存関係を捉えることで、アマortized複雑さ解析を可能とすることを目的とする。
  • モジュラーで4段階の解析パイプラインを用いることで、実世界のCプログラムにおいて高い性能とスケーラビリティを達成することを目的とする。
  • 大規模な公開Cプログラムベンチマーク上で手法を評価し、既存ツールと比較して優れた結果と高速性を示すこと。

提案手法

  • 解析は、単純な不変条件生成とシンボリック実行を用いて抽象プログラムモデルを構築し、状態付きの損失のあるベクトル加算システム(VASS)としてプログラムを表現する。
  • VASSの停止性を証明するため、1つのコンponentの変化が他のコンponentに与える影響を追跡する新規な技術を用いて、レキシコグラフィック順序関数を計算する。
  • 境界は、コンponents間の算術的依存関係を分析することにより、レキシコグラフィック順序関数から導出され、アマortized複雑さ境界が可能になる。
  • 本手法は、4つの明確に定義された段階(プログラム抽象化、制御フロー抽象化、レキシコグラフィック順序関数生成、境界計算)に構造化されている。
  • パスセンシティブな処理は、内側のループのトランスティヴハルを計算するのではなく、軽量なパス削減技術によって管理され、指数的ブロードナップを回避する。
  • 推論コストの高いツールを避けるために、VASSモデルの直接的なシンボリック解析に依存することで、予測可能性とスケーラビリティが向上する。

実験結果

リサーチクエスチョン

  • RQ1一般の推論ツール(抽象インタプリター、コンピュータ代数システムなど)に依存せずに、静的境界解析がアマortized複雑さ解析を達成できるか。
  • RQ2レキシコグラフィック順序関数のコンponents間の算術的依存関係をどのように捉えることで、正確な境界計算が可能になるか。
  • RQ3シンプルでモジュラーな解析パイプラインが、実世界のCプログラムにおいて、速度と精度の両面で既存ツールを上回ることができるか。
  • RQ4本手法は、依存するカウンターや非自明な制御フローを持つ複雑でネストされたループにどの程度スケーリング可能か。
  • RQ5外側依存、内側依存、マルチパスループなどの挑戦的なループカテゴリに対して、本手法はどの程度有効か。

主な発見

  • ツールは20分未塔で4,210個のループを2,833個のSCC(強連結成分)に対して解析し、分析時間10秒を超えたのはたった27個のSCCにとどまった。
  • 停止性が証明されたループにおいて、境界計算の成功率が98%に達し、高い信頼性を示した。
  • 『内側依存』カテゴリの305個のループのうち107個で、計算された境界がアマortizedであった。これは、本手法が非自明な複雑さの挙動を捉える能力を有していることを示している。
  • 先行ツール[27]と比較して、速度面で1桁の向上を達成し、ベンチマークを20分未塔で完了した(対照的に、先行ツールは約13時間かかった)。
  • 『外側依存』および『パス数 > 1』カテゴリでは100%の成功率を達成し、最も挑戦的なカテゴリでは約50%の成功率を示した。
  • 他のツールがそのアマortized挙動(複数のループレベルにまたがるカウンタの増加を伴う)により解析不能であった12個のループに対しても、正確な境界を計算に成功した。

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

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

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

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