1 / 22

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

ソースプログラム・アーカイブ・サイト - 関数依存グラフと検索への応用 -. 山本 晋一郎 ( 愛知県立大学 ) 阿草 清滋 ( 名古屋大学 ). 発表の流れ. ☆ 背景 ソースプログラム・ブラウザ SPIE ソフトウェア・アーカイブ・サイト 関数呼出依存グラフを用いたライブラリの用例検索 今後の課題. 背景 (1). Corpus ( 文書・法典などの ) 集成、収集 ; 大全、全集 : the entire corpus of Old English poetry 古英詩の完全な集大成 コーパス , 資料体 : 言語学的分析のために収集された一群のデータ

clint
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

  4. 背景(2) • 計算機可読な言語資源の重要性 • 日本語入力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. 関連研究 (1) • 独立したブラウザ • Source Navigator (旧Cygnus, 現RedHat) • C, C++, Java, Tcl, Fortran, CORBA IDL • クラス、関数、変数のクロスリファレンス • 統合開発環境(構成管理・ビルダ・デバッガ) • APIは貧弱 • SoftBench (HP) • ファイル,関数,大域変数,列挙子,型,構造体に対する参照機能 • 識別子の出現を参照,宣言,定義,使用,変更の5種類に分類

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

  11. 参照・検索機能の比較

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

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

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

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

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

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

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

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

More Related