2006-10-06

Google Code Search がリリースされた

Google が、プログラムのソースコードに特化した検索サービス Google Code Search を開始した。

リリース直後には、有名ブログが挙って取り上げて...

一晩明けると、活用形の記事が色々と飛び出して来た。

Code の検索

Google Code Search は、ウェブ検索と同じやうに、世界中からプログラムのソースコードをインデックスしている。インデックスには、tar+gzip などで圧縮されたものも含まれる。

検索結果には、以下の項目が表示される

  • ソースコードのファイル名
  • 検索キーワードを含むソースの断片
  • ソース・ファイルの所在 (URL)
  • ソース・ファイルのライセンス
  • ソース・ファイルの言語

スクリーン・ショットは以下の検索式を実行した所。

Google Code Search Mersenne Twister は、1997 年に論文が書かれた比較的最近の乱数発生器。そのコードの C++ での実装を検索した。Boost C++ Libraries に含まれてるソース・コードが検索結果のトップに現れた。Google Code Search によると、このライブラリーが Perl license であることが分かる。また、「24 identical」とあるので、Google は 24 か所で同じコードがホストされたと言っている。

「ソースコードのファイル名」(この場合「Boost-Graph-1.2/include/boost/random/mersenne_twister.hpp」) をクリックすると、Google 側にキャッシュされてるソースコードに跳ぶ。

画面は左と右の 2 カラム構成。左カラムは、ソースコードと同じ階層に含まれているファイルのリンク集。右カラムがソースコード本体。

Google Code Search - result ソースコードでは、検索キーワードがハイライトさへれる。色は黄色。

この画面では、「n」キーと「p」キーを使って、ハイライトされたテキストにジャンプすることができる。ジャンプすると、そのテキストは水色になる (スクリーン・ショットでは一番上の「mersenne」が水色になってるね)。

検索の特徴

Google のウェブ検索と大きく違うのは、「正規表現」のサポートでせう。Google がサポートするのは、POSIX 準拠の拡張正規表現。詳細は、wikipedia。

正規表現が使えるということは、Google 検索で無視されてた「$」や「.」や「^」といった記号類も検索できるということ。例えば、こんな検索が思いつく。

なお、Google Code Search はデフォールトで大文字・小文字の区別をしない (case insensitive)。大文字・小文字の区別をする場合、Advanced Search の「Case-sensitive search」で「Case-sensitive search」を選ぶ。もしくは、検索 URL の末尾に &case=y を加える。

この他、Google Ceade Search では、ファイル名 (file:), パッケージ名 (package:), ソースコードの言語 (lang:), ライセンス (license:) といった検索オペレーターも用意している。

ちなみに、ぼくの好きな EmacsLisp は、lang:emacslisp じゃダメで lang:lisp で検索しなくちゃいけなかった。それなのに lang:scheme は用意されてるんだよね。ムゥー。file:\.el$ で検索しろってことかな :p

No comments:

Post a Comment