gperfは、C++で書かれた完全ハッシュ関数生成器です。利用者が指定したn個の要素からなるキーワード集合Wを、完全ハッシュ関数Fに変換します。Fは、W内のキーワードを0..kの範囲に一意に対応付けます。ここでk >= n-1です。k = n-1なら、Fは最小完全ハッシュ関数です。gperfは、0..kの範囲に対応する静的な検索テーブルと、2つのC関数を生成します。これらの関数は、検索テーブルを高々1回調べることで、指定した文字列sがWに含まれるかどうかを判定します。
gperfは現在、GNU C、GNU C++、GNU Java、GNU Pascal、GNU Modula 3、GNU indentを含む、実用および研究用の複数のコンパイラや言語処理ツールで、字句解析器の予約語認識器を生成するために使われています。gperfの完全なC++ソースコードは、https://ftp.gnu.org/pub/gnu/gperf/から入手できます。gperfの設計と実装をより詳しく説明した論文は、Second USENIX C++ Conferenceの論文集、またはhttp://www.cs.wustl.edu/~schmidt/resume.htmlで入手できます。