研究概要 |
新しい方式であるバイナリレベルデータ統合と軽量データ統合を使って,高精度なCASEツール(ソフトウェア開発ツール)を実現する手法の確立を目指し、C言語用,ELF/DWARF2,理解ツールに対象を限定したツール構築実験を行ってきた。今年はさらに大きく次の二つの研究を行った。 (1)C前処理系用のツール構築基盤の開発:C前処理系があるために、C言語用ツールの精度が悪いことが広く知られている。本研究では追跡子方式という新しい方式を提案して、移植性・適合性が高く、高精度なC前処理系解析ツールTBCppAを実験的に実装した。GCC-4.1.1(約63万行)を処理できるなど良い結果を出した。 (2)C++言語用コールグラフ生成系の開発:C++言語はその複雑な言語仕様のため、C言語以上にツール構築が困難であることが知られている。本研究では関数呼び出しの直前のバイナリコードを軽量解析することで、仮想関数にも対応した高精度なコールグラフ生成系の構築に成功した。 また、研究を進める上で明らかとなったバイナリレベルデータ統合の欠点を補うため、次の二つの研究を行った。 (1)コード・文書間の追跡性ツールの研究:ソースコードと外部文書の関係は現実のソフトウェア開発ではほとんど管理されておらず、保守性悪化の大きな原因となっている。本研究では我々が開発した教育用OS(udos)を例題に、コード・文書間の追跡性や追跡対象となるキーワードに関する研究を行った。 (2)逆実行可能なデバッガの開発:バイナリレベル統合方式は主に静的な情報提供には有効だったが動的側面が弱かった。本研究ではその欠点を補うデバッガを開発した。
|