Skip to main content
QUICK REVIEW

[論文レビュー] A Complexity Preserving Transformation from Jinja Bytecode to Rewrite Systems

Georg Moser, Michael Schaper|arXiv (Cornell University)|Apr 6, 2012
Algorithms and Data Compression参考文献 33被引用数 3
ひとこと要約

本稿では、実行パスを表す有限計算グラフを用いて、Jinjaバイトコード(JBC)プログラムから制約付き項書き換え系(cTRSs)への複雑性を保全する変換を提示する。この手法により実行時複雑性が保たれ、従来の書き換え系技術を用いた自動的複雑性解析が可能となり、非終了性の保全が重要な副次的結果として得られる。

ABSTRACT

We revisit known transformations from Jinja bytecode to rewrite systems from the viewpoint of runtime complexity. Suitably generalising the constructions proposed in the literature, we define an alternative representation of Jinja bytecode (JBC) executions as "computation graphs" from which we obtain a novel representation of JBC executions as "constrained rewrite systems". We prove non-termination and complexity preservation of the transformation. We restrict to well-formed JBC programs that only make use of non-recursive methods and expect tree-shaped objects as input. Our approach allows for simplified correctness proofs and provides a framework for the combination of the computation graph method with standard techniques from static program analysis like for example "reachability analysis".

研究の動機と目的

  • 項書き換え系を用いた静的解析によって、命令型JBCプログラムにおけるリソース使用量の自動的静的解析を可能にする。
  • 既存の複雑性解析ツールがJBCに直接適用できないという問題を解決するため、このような解析に適した形にJBCを変換する。
  • 変換がJBCプログラムの実行時複雑性および非終了性の挙動を両方保つことを保証する。
  • 項ベースの抽象化と、形状解析などの標準的静的解析技術を統合するモジュラーなフレームワークを提供する。
  • 制約付き項書き換え系(cTRSs)の将来の複雑性解析の基盤を築く。

提案手法

  • 記号実行とワイドニング技術を用いて、JBCプログラムのすべての可能な実行パスを表す有限計算グラフを構築する。
  • 計算グラフの有限性と正しさを保証するため、JVM状態の新規抽象化を導入する。
  • 有限計算グラフを制約付き項書き換え系(cTRS)として符号化し、制約はプログラム変数間の関係を表す。
  • 二段階の変換を採用する:まず計算グラフを構築し、その後それをcTRSに符号化して複雑性解析に用いる。
  • 計算グラフの構築を支援するために外部の形状解析(例:サイクル非存在性および到達可能性)に依存し、この手法がモジュラリティと拡張性を有する。
  • プログラム状態と遷移を項ベースの抽象化で表現することで、書き換え系技術による精密な複雑性推論を可能にする。

実験結果

リサーチクエスチョン

  • RQ1計算グラフを用いて、JBC実行の有限かつ複雑性を保全する表現を構築できるか?
  • RQ2JBCからcTRSへの変換が実行時複雑性および非終了性を保つのか?
  • RQ3得られたcTRSを用いて、命令型プログラムの自動的複雑性解析が可能か?
  • RQ4この文脈において、項ベースの抽象化を、形状解析などの標準的静的解析技術とどのように組み合わせられるか?
  • RQ5変換の理論的保証、特に有限性と正しさに関して、どのようなものがあるか?

主な発見

  • JBCプログラムからcTRSsへの変換は複雑性を保全する:元のJBCプログラムの実行時複雑性は、得られるcTRSのものによって上限が定まる。
  • ワイドニングを用いた抽象状態構築により、計算グラフ表現が有限であることが証明可能である。
  • cTRSの正規形性質を用いた背理法による証明により、変換が非終了性を保つことが示された。
  • 本手法により、既存の形状解析技術の統合が可能となり、静的解析コンponentのモジュラリティと再利用性が向上する。
  • プロトタイプ実装であるJaTは、flattenプログラムを正しく解析し、TCTツールを用いて線形実行時複雑性を確認した。
  • 本手法は、cTRSsへの複雑性解析技術の拡張の理論的基盤を提供するが、現時点のツール(例:TCT)はcTRSsに対しては限定的なサポートしか提供しない。

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

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

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

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