Presentation is loading. Please wait.

Presentation is loading. Please wait.

ソースプログラム・アーカイブ・サイト -関数依存グラフと検索への応用-

Similar presentations


Presentation on theme: "ソースプログラム・アーカイブ・サイト -関数依存グラフと検索への応用-"— Presentation transcript:

1 ソースプログラム・アーカイブ・サイト -関数依存グラフと検索への応用-
山本 晋一郎 (愛知県立大学) 阿草 清滋 (名古屋大学)

2 発表の流れ ☆背景 ソースプログラム・ブラウザSPIE ソフトウェア・アーカイブ・サイト 関数呼出依存グラフを用いたライブラリの用例検索
今後の課題

3 背景(1) Corpus (文書・法典などの)集成、収集; 大全、全集: the entire corpus of Old English poetry 古英詩の完全な集大成 コーパス,資料体: 言語学的分析のために収集された一群のデータ 言語資源 Corpus + 作成・利用支援環境

4 背景(2) 計算機可読な言語資源の重要性 米国LCD, 欧州ELRA 日本語入力FEP、音声認識、機械翻訳、意味抽出、語学教育などへの応用
Corpus linguistics (Brown Corpus以来) 米国LCD, 欧州ELRA

5 Corpus Programming? 蓄積されたProgram Corpusに基づいたソフトウェア(プログラム)開発支援は可能か? 開発
Programming Navigation 三浦 他: プログラミングナビゲーションのための関数呼び出し依存グラフ(2000) 検索 品質チェック 事例に基づいたコーディング・チェッカー 河合 他: 既存プログラムからの規範パターン獲得とそれに基づくコーディン(1997) 教育

6 要素技術は? Corpus作成支援 SPIE: 自動的なタグ付け XMLタグセット
Concordancer 自然言語はKWIC, プログラム断片は? アプリケーション Programming Navigation 用例検索 クラスタリング(100万件ヒットシンドローム)

7 発表の流れ 背景 ☆ソースプログラム・ブラウザSPIE ソフトウェア・アーカイブ・サイト 関数呼出依存グラフを用いたライブラリの用例検索
今後の課題

8 SPIE (Source Program Information Explorer)
WWW ブラウザ上で実現したソースプログラムブラウザ (Browser on Browser) 参照と検索機能 カテゴリ(ファイル,関数, 大域変数, 局所変数, 引数, 型, 構造体メンバ, 列挙子, マクロ, 定数, タグ, ソフトウェア関連文書) を区別した参照・検索 定義と参照(左辺値と右辺値)を区別した参照・検索 前処理によってスキップされる行を色分け (#ifdef … #endif)

9

10

11 関連研究 (1) 独立したブラウザ Source Navigator (旧Cygnus, 現RedHat) SoftBench (HP)
C, C++, Java, Tcl, Fortran, CORBA IDL クラス、関数、変数のクロスリファレンス 統合開発環境(構成管理・ビルダ・デバッガ) APIは貧弱 SoftBench (HP) ファイル,関数,大域変数,列挙子,型,構造体に対する参照機能 識別子の出現を参照,宣言,定義,使用,変更の5種類に分類

12 関連研究 (2) Browser on Browserアプローチ GLOBAL (Shigio Yamaguchi)
C, C++, Yacc, Java ファイル、関数、マクロに対する参照機能 エディタのタグ機能と連携 広く普及している(FreeBSDの開発プロジェクトなど) LXR (Linux Cross-Reference by マクロ、型、タグ、列挙子、関数、変数に対する参照機能 スコープのチェックを行っていないため不正確

13 参照・検索機能の比較

14 発表の流れ 背景 ソースプログラム・ブラウザSPIE ☆ソフトウェア・アーカイブ・サイト 関数呼出依存グラフを用いたライブラリの用例検索
今後の課題

15 ソフトウェア・ アーカイブ・ サイト Open-source World Sapid Archive Site *.c SDB 解 析 器
ソフトウェア解析モジュール ソフトウェア検索モジュール SDB *.html Internet *.java SDB *.html *.xml SDB *.html Open-source software 群の解析結果を蓄積 利用者は HTML Browser を用いてアクセス Program Corpusから典型的な使用例を参照する

16 Sappyの現状 自動FTP FTP (or HTTP)サイトの登録 対象ソフトウェアと対象外ファイルの登録
自動解析 SDB作成とSPIEによる解析 正常終了と異常終了の判別 対象 GNU, FreeBSD

17

18 発表の流れ 背景 ソースプログラム・ブラウザSPIE ソフトウェア・アーカイブ・サイト ☆関数呼出依存グラフを用いたライブラリの用例検索
今後の課題

19 発表の流れ 背景 ソースプログラム・ブラウザSPIE ソフトウェア・アーカイブ・サイト 関数呼出依存グラフを用いたライブラリの用例検索
☆今後の課題

20 多様で柔軟な検索 (ソフトウェア検索空間)
エレメント 仕様書 マニュアル モジュール仕様書 関数仕様書 ソースプログラム ファイル コメント,メモ 宣言 バージョン アプリケーション ミドルウェア ライブラリ OS ハードウェア プロダクト

21 多様で柔軟な検索の例 (1) エレメントをトラバース バージョンをトラバース マニュアルとソースプログラムの整合性検査
関数の使用場所で関数定義のコメントを参照 ある関数に関係するすべてのコメントは ? バージョンをトラバース ある関数はどの版で導入されたのか ? ある関数を変更した全ての版は ? ある作業者が変更した全ての関数は ? CVSとの連携

22 多様で柔軟な検索の例 (2) プロダクトをトラバース ライブラリの使用場所でライブラリの定義を参照 アプリケーションとライブラリを跨った検索
#ifdef に切り分けが行われている関数は ? 移植性に関するノウハウ あるライブラリの典型的な使用方法は ?


Download ppt "ソースプログラム・アーカイブ・サイト -関数依存グラフと検索への応用-"

Similar presentations


Ads by Google