gperf − キーの集合から完全なハッシュ関数を生成する |
gperf [OPTION]... [INPUT-FILE] |
GNU ‘gperf’ は、完全なハッシュ関数を生成します。 長 いオプションに引数が必須であると示している場合、等価の短いオプション も引数は必須です。 |
入力ファイルの解釈 |
−e, −−delimiters=DELIMITER−LIST |
デリミタを含む文字列を指定します。デリミタは、キーワードと属 性 とを切り分けるために使用されます。デフォルトは ",\n" です。 |
−t, −−struct−type |
構 造体の型宣言を、生成コード中に含めます。 %% より前のすべての テキストは、型宣言とみなされます。キーワードと追加のフィール ド を、ひとまとめに 1 行にして、この後に続けます。 |
出力コード用言語 |
−L, −−language=LANGUAGE−NAME |
指 定 し た言語でコードを生成します。現在使用可能な言語は、C++, ANSI-C, C, KR-C です。デフォルトは C です。 |
出力コードの詳細 |
−K, −−slot−name=NAME |
キーワード構造体中のキーワード要素の名前を選択します。 |
−F, −−initializer−suffix=INITIALIZERS |
キーワード構造体中の追加要素を、これで初期します。 |
−H, −−hash−fn−name=NAME |
生成されるハッシュ関数の名前を指定します。デフォルト は ‘hash’ です。 |
−N, −−lookup−fn−name=NAME |
生 成 さ れ る 検 索 関 数 の 名 前 を 指定します。デフォルトは ‘in_word_set’ です。 |
−Z, −−class−name=NAME |
生成される C++ クラスの名前を指定し ま す。 デ フォ ル ト 名 は ‘Perfect_Hash’ です。 |
−7, −−seven−bit |
7 ビット文字を仮定します。 |
−c, −−compare−strncmp |
strcmp の代りに strncmp を使用する、比較コードを生成します。 |
−C, −−readonly−tables |
生成される検索表を定数、すなわち読み取り専用にします。 |
−E, −−enum |
define の代りに enum 型ローカルを使用して、検索関数用の定数値を 定義します。 |
−I, −−includes |
必要なシステムインクルードファイル <string.h> を、コードの先 頭 でインクルードします。 |
−G, −−global |
キー ワードの静的な表を、検索関数中に隠す (これがデフォルト動作 です) の代りに、静的な大域変数として生成します。 |
−W, −−word−array−name=NAME |
単語一覧配列の名前を指定します。デフォルト名は ‘wordlist’ で す。 |
−S, −−switch=COUNT |
生 成される C コードに、配列検索表の代りに、switch 文方式を使用 させます。キーファイルによっては、時間と空間の削減になりま す。 COUNT 引数は、生成される switch 文の数を指定します。値 1 ではす べての要素を含む switch を 1 個生成し、値 2 では表の半分の要 素 を 含む switch を 2 個生成し、等となります。 COUNT が非常に大き い場合、例えば 1000000 の場合、生成される C コードは二分検索 を 行います。 |
−T, −−omit−struct−type |
型 宣言が出力ファイルへ転送されることを防ぎます。型が他のどこか で定義されている場合に、本オプションを使用します。 |
gperf が使用するアルゴリズム |
−k, −−key−positions=KEYS |
ハッシュ関数が使用するキーの場所を選択します。選択が許される 範 囲は 1-126 の範囲で、両端を含みます。位置はコンマで区切り、範囲 を指定可能であり、キー位置の順序は任意です。また、メタ文字 ’*’ は、生成されるハッシュ関数にすべてのキー位置を考慮させ、$ は ‘‘ 最後の文字’’ を意味します。例は $,1,2,4,6-10 です。 |
−l, −−compare−strlen |
文字列比較の前に、キーの長さを比較します。これにより、検索中 の 文字列比較回数を削減します。 |
−D, −−duplicates |
重 複 す る値にハッシュされるキーワードを扱います。非常に冗長な キーワード集合を扱う場合に有用です。 |
−f, −−fast=ITERATIONS |
gen-perf.hash 関数を ‘‘高速’’ に生成します。 gperf の実行時間を 削 減しますが、生成される表の大きさの最小化を犠牲にします。数値 引数は、衝突解決時の繰り返し数を表現します。 ‘0’ は、‘‘キーワー ド数だけ繰り返す’’ ことを意味します。 |
−i, −−initial−asso=N |
関 連 付けられた値の配列に初期値を与えます。デフォルト値は 0 で す。この値を大きくすると、最終的な表を大きくします。 |
−j, −−jump=JUMP−VALUE |
‘‘ジャンプ値’’、すなわち文字の関連付けられた値を、衝突時にど れ だ け進めるかを指定します。奇数であることが必要であり、デフォル トは 5 です。 |
−n, −−no−strlen |
ハッシュ関数の計算にキーワード長を含めません。 |
−o, −−occurrence−sort |
キー集合中での出現頻度で、入力キーを並び換えます。検索時間を 劇 的に削減するはずです。 |
−r, −−random |
関連付けられた値の表の初期化にランダム性を利用します。 |
−s, −−size−multiple=N |
生成されるハッシュ表の大きさを変えます。数値引数 N は、関連付け られた値の範囲が、入力キーの数と比較して ‘‘何倍大きいまたは小さ い’’ べきことを示します。例えば、数値 3 は、 ‘‘関連付けられた値 の最大値は、入力キー数の約 3 倍の大きさを許す’’ ことを意味し ま す。逆に、値 −3 は、 ‘‘関連付けられた値の最大値を、入力キー数の 約 1/3 に小さくする’’ ことを意味します。表が大きくなると、検 索 失 敗時の時間を削減しますが、表のための余計な空間が犠牲となりま す。デフォルト値は 1 です。 |
情報としての出力 |
−h, −−help |
このメッセージを表示します。 |
−v, −−version |
gperf のバージョン番号を表示します。 |
−d, −−debug |
デバッグオプションを有効にします (冗長な出力を標準エラーへ生 成 します)。 |
バグは <bug-gnu-utils@gnu.org> へ報告してください。 |
gperf の完全な文書は Texinfo マニュアルで管理されています。 info および gperf のプログラムがあなたのサイトで適切にインストールされていれば、 コ マンド |
info gperf |
で完全なマニュアルにアクセス可能です。 |