氏名: 三浦 良 (289734452)

論文題目: 関数呼び出し依存グラフを用いたプログラミングナビゲーションシステム


論文概要

ソースコードには繰り返し現れる部分構造が存在し,通常これらの部分構造はラ イブラリ関数として提供され,それを用いることによりプログラムを効率的に作 成することが可能となる.しかし,繰り返し現れるのにもかかわらずその構造や 汎用性の点からライブラリ関数として提供されないものや,提供されたライブラ リ関数の組み合わせ等については,再利用の枠組みが確立されておらず,プログ ラマは繰り返し類似した記述を書くことを強いられるが現状である.一方,大規 模かつ高品質なフリーソフトウェアが数多く存在し,近年のオープンソースの流 れにより,商用レベルのソフトウェアのソースコードさえも入手可能となってい る.そこに蓄積されているプログラミングに関する様々なノウハウを再利用した いという要求が存在する.

我々は,ライブラリ関数がプログラムの骨格を担う重要な要素になっており,そ の組合せこそ再利用のし易いソースコードの粒度であると考え,それを表現する グラフとして関数呼び出し依存グラフ(Function Call Dependence Graph : FCDG)を提案した.FCDGは,ソースコード中のライブラリ関数の呼び出し,およ び,分岐・繰り返し等の条件式を表す述語関数呼び出しを節点とし,その間に存 在する,関数呼び出しの戻り値が他の関数呼び出しの引数になっているというデー タ依存関係,および制御依存関係を辺とするグラフである.

FCDGを用いたシステムとして,膨大な既存ソースコード群から,プログラマが求 める機能を実現しているソースコード断片を,効率的に検索および閲覧できるシ ステムを提案した.このシステムは,あらかじめ既存のソースコードの断片群に 対してFCDGを構成し,データベースに蓄積しておき,それに対する検索を,グラ フの埋め込み問題として捉えることにより効率的な検索を行なうという手法を採っ ている.また,この仕組みを利用した新たなるプログラム開発環境の枠組みとし て,プログラミングナビゲーションシステムを提案した.このシステムは,現在 作成中であるプログラムのFCDGを入力とし,既存ソースコードのFCDGデータベー スに問い合わせを行なうことにより,プログラマに適切な指示を与えるシステム である.このシステムを用いることにより,過去の優れたプログラムを継承しな がら,効率良く新たなプログラムを作成することが可能であることを確認した.


目次に戻る


asakura@nuie.nagoya-u.ac.jp