1. Efficient Dependence Analysis Algorithm for Programs with Pointers and Recursive Calls
- Author
-
Sato, Shinichi, Ueda, Ryouichi, and Inoue, Katsuro
- Subjects
alias ,program dependence analysis ,エイリアス ,プログラム依存グラフ(PDG) ,pointer ,program slice ,program dependence graph (PDG) ,ポインタ ,スライス ,依存関係解析 - Abstract
プログラムの依存関係解析は, デバッグや保守, コンパイル時の最適化などに利用されており, 非常に有用である. しかし, エイリアスの影響が手続きを越えて伝わるようなプログラムの依存関係解析は容易ではない. 本研究では, 各手続きごとに, その内部で定義される変数などの情報をあらかじめ計算しておき, 手続き呼び出しの際にはその情報を参照することにより, 手続きの再解析を行なわないようにするという手法をエイリアスを含むプログラムに適用することによって, 効率のよい依存関係解析を行なうことができるアルゴリズムを提案する. さらに, このアルゴリズムによって得られた解析結果からPDGを生成し, その上でスライシングを行なう手法についても述べる., Program Dependence Analysis is useful in software debugging, maintainance and compiler optimization. However it is not easy to analyze the dependence of programs including pointers and recursive calls. In this paper, we propose an efficient program dependence analysis algorithm which would eliminate the repeated analysis efforts for the procedures called more than once. This is performed by storing the analysis results for the previous calls and then refering them. Furthermore, we present how to construct the PDG by using the information obtained with this algorithm, and how to caluculate the Program Slices on it.
- Published
- 1996