Google が、プログラムのソースコードに特化した検索サービス Google Code Search を開始した。
- Google Code Search
- ref. Official Google Blog: More developer love with Google Code Search
- ref. Google Code - Updates: Search the world's public source code
リリース直後には、有名ブログが挙って取り上げて...
- TechCrunch Japanese アーカイブ » Google、「Code Search」をお披露目
- 秋元@サイボウズラボ・プログラマー・ブログ: Googleがソースコード検索Google Code Searchを公開
- » Google Code Search has been launched | Googling Google | ZDNet.com
- » Google Launches Code Search » InsideGoogle » part of the Blog News Channel
- Google Operating System: Google Code Search
- Google Code Search indexes public source code - Lifehacker
一晩明けると、活用形の記事が色々と飛び出して来た。
- 秋元@サイボウズラボ・プログラマー・ブログ: Google Code Search のアレな活用法が続々と
- [を] Google Code Search
- /home/pochi/ChangeLog Google Code Search
- » Google Code Search Full Of Fun Stuff » InsideGoogle » part of the Blog News Channel
Code の検索
Google Code Search は、ウェブ検索と同じやうに、世界中からプログラムのソースコードをインデックスしている。インデックスには、tar+gzip などで圧縮されたものも含まれる。
検索結果には、以下の項目が表示される
- ソースコードのファイル名
- 検索キーワードを含むソースの断片
- ソース・ファイルの所在 (URL)
- ソース・ファイルのライセンス
- ソース・ファイルの言語
スクリーン・ショットは以下の検索式を実行した所。
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 カラム構成。左カラムは、ソースコードと同じ階層に含まれているファイルのリンク集。右カラムがソースコード本体。
ソースコードでは、検索キーワードがハイライトさへれる。色は黄色。
この画面では、「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