1995 Fiscal Year Annual Research Report
プログラムの静的解析に基づくプログラム部品の抽出に関する研究
Project/Area Number |
07680355
|
Research Institution | Osaka University |
Principal Investigator |
井上 克朗 大阪大学, 基礎工学部, 教授 (20168438)
|
Co-Investigator(Kenkyū-buntansha) |
飯田 元 奈良先端科学技術大学院大学, 情報科学センター, 助教授 (20232126)
|
Keywords | プログラムスライス / 部分評価 / デバッガ / プログラム依存グラフ / 再帰プログラム |
Research Abstract |
本研究の目的は、プログラムスライス及び部分評価を組み合わせ、与えられた手続き型のプログラムから、ある特定の機能のみを持つプログラム(プログラム部品と呼ぶ)を効率良く生成する方法をし、また、その方法を実証し、効果を評価するためにプロトタイプシステムを作ることであった。 実際に用いた方式は、再帰を含むプログラムに対するスライスアルゴリズム及び、値の代入による式の評価と不要式の削除という方法に基づいた部分評価のアルゴリズムを組み合わせたものである。また、それに基づいて、教育用のPASCALのサブセットのプログラムに対してスライスや部分評価を行なうデバッグ支援システムを作成した。 本システムは、スライスや部分評価を行ない、その結果をプログラム部品として保存することができる。その他、通常のデバッガとして、プログラムのステップ実行、停止、ブレイクポイントの設定、変数の内容の参照/変更などを、元になるプログラムや取り出した部品に対して行なうこともできる。 このシステムを利用することにより、プログラムのある部分のみを抽出してその部分を保存し、再利用する、という目的は実現できた。その際,その依存関係情報は,一度解析すれば内部に保存できるため,同じプログラムに対しては,解析しなおすことなく別のスライス計算などの作業を行なうことができる。 スライスによって部分を取り出す際、一般に元のプログラムが大きい時には,スライスも大きくなる.本ツールでは,スライス全体を参照するだけでなく,PDG(プログラム依存グラフ)を探索するレベルを任意に設定することができるので、注目している文に直接影響する文のみを抽出したり;データ依存もしくは制御依存の一方だけを用いたPDGの探索もできるため,参照部分をさらに小さくすることができる。
|
-
[Publications] 佐藤慎一: "プログラムの依存関係解析に基づくデバッグ支援ツールの試作" 情報処理学会論文誌. (未定)(採録決定). 未定 (1996)
-
[Publications] Ryoichi Ueda: "A Practical Slice Algorithm for Recursive Programs" Proc.Int.Symposium on Software Engineering for the Next Generation. 96-106 (1996)
-
[Publications] 佐藤慎一: "再帰やポインタを含むプログラムの効率的な依存関係解析法の提案" 電子情報通信学会 ソフトウエアサイエンス研究会報告. SS95-37. 9-16 (1996)
-
[Publications] 高田智規: "ソースコード解析システムを用いたプログラム依存グラフ表示ツールの試作" 情報処理学会第51回(平成7年後期)全国大会論文集. 3N-05. 201-202 (1995)
-
[Publications] 佐藤慎一: "プログラムの依存関係解析に基づくデバッグ支援システムの試作" 電子情報通信学会 ソフトウェアサイエンス研究会報告. SS95-4. 23-30 (1995)