Mercurial > hg > Papers > 2011 > prosym-shinya
changeset 3:bcfd0cc0c965
modify benchmarks.
author | Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 03 Dec 2010 03:08:47 +0900 |
parents | b128da8c6408 |
children | 478b022911cc |
files | tex/prosym-shinya.pdf tex/prosym-shinya.tex |
diffstat | 2 files changed, 9 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/tex/prosym-shinya.tex Fri Dec 03 01:55:00 2010 +0900 +++ b/tex/prosym-shinya.tex Fri Dec 03 03:08:47 2010 +0900 @@ -121,15 +121,6 @@ る表現は, 数学的には正則表現と定義されている. 本論文では,特に区別のない限り,正則表現と正規表現を同じものとして扱う. -\subsection{grep} -正規表現は, テキストのパターンをシンプルに記述できるという利点から, テキ -ストファイルから, 任意のパターンにマッチするテキストを検索するなどの用途 -に使用される. - -GNU grep は, それを実現するソフトウェアの一つであり, 引数として与えられ -たファイルから, 与えられた正規表現にマッチするテキストを含む行を出力する -機能を持っている. - \section{正規表現エンジンの実装} 正規表現は等価なNFAに, またNFAは等価なDFAに変換することが可能である\cite{U}. 以 下にその変換手方を説明する. @@ -291,8 +282,6 @@ {\bf 図\ref{figure:dfasmaple}のDFAに対応するCbCコードセグメント} \end{center} -\newpage - DFAの遷移とは直接関係のない引数(ファイル名やバッファへのポインタ等) が目 立が, CbCでは環境をコードセグメント間で引数として明示的に持ち運ぶ軽量継 続を基盤としたプログラミングスタイルが望ましい. 今回コンパイラによって生 @@ -330,7 +319,14 @@ LLVMによる実装でも, Cによる実装と同様に,DFAの状態遷移をswitch文と関数呼 び出しによって表現している. -\newpage +\section{grep} +正規表現は, テキストのパターンをシンプルに記述できるという利点から, テキ +ストファイルから, 任意のパターンにマッチするテキストを検索するなどの用途 +に使用される. + +GNU grep は, それを実現するソフトウェアの一つであり, 引数として与えられ +たファイルから, 与えられた正規表現にマッチするテキストを含む行を出力する +機能を持っている. \section{評価} \subsection{実験} @@ -390,8 +386,6 @@ \item[Google RE2] piyo \end{description} -\newpage - {\bf 実験環境}\\ \begin{itemize} \item CPU : Core i7 950 @3.0GHz @@ -432,7 +426,7 @@ パターン : ``$Wikipedia$''\\ マッチ行数: 348936行\\ GNU grep では, 与えられたパターン内に, 確実に含まれる文字列(固定文字列) -が存在する場合は, Boyer-Moore法 等の高速な文字列探索アルゴリズムを用いて +が存在する場合は, Boyer-Moore-Horspool法 等の高速な文字列探索アルゴリズムを用いて フィルタをかけることで, DFAによるマッチングを減らし,高速化している. 本実 装の grep でも, 同様に固定文字列フィルタによる高速化を行っているが, 単純 な固定文字列の検索でも, コンパイルすることによる高速化が結果に出ている. @@ -450,8 +444,6 @@ 字の変換処理によるオーバーヘッドによるものである. \end{description} -\newpage - 2つのテストケースの結果を見てみると, 本実装はそれぞれGNU grep と比べて高 速な結果となっており, コンパイル時間はマッチングにかかる時間と比べて無視 できるほど短い時間である.