mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-28 02:32:47 +00:00
29 lines
1.1 KiB
Plaintext
29 lines
1.1 KiB
Plaintext
|
While teaching a data structures course at University of California,
|
||
|
Irvine, I developed a program called GPERF that generates perfect hash
|
||
|
functions for sets of key words. A perfect hash function is simply:
|
||
|
|
||
|
A hash function and a data structure that allows
|
||
|
recognition of a key word in a set of words using
|
||
|
exactly 1 probe into the data structure.
|
||
|
|
||
|
The gperf.texinfo file explains how the program works, the form of the
|
||
|
input, what options are available, and hints on choosing the best
|
||
|
options for particular key word sets. The texinfo file is readable
|
||
|
both via the GNU emacs `info' command, and is also suitable for
|
||
|
typesetting with TeX. The texinfo.tex macros needed to run
|
||
|
gperf.texinfo through TeX are available in the GNU GCC release. If
|
||
|
you don't have access to these please email me and I'll send them to
|
||
|
you (about 75k).
|
||
|
|
||
|
The enclosed Makefile creates the executable program ``gperf'' and
|
||
|
also runs some tests.
|
||
|
|
||
|
Output from the GPERF program is used to recognize reserved words in
|
||
|
the GNU C, GNU C++, and GNU Pascal compilers, as well as with the GNU
|
||
|
indent program.
|
||
|
|
||
|
Happy hacking!
|
||
|
|
||
|
Douglas C. Schmidt
|
||
|
schmidt@ics.uci.edu
|