mirror of
https://git.savannah.gnu.org/git/gperf.git
synced 2025-12-02 13:09:22 +00:00
Regenerated.
This commit is contained in:
@@ -1,41 +1,39 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- This HTML file has been created by texi2html 1.51
|
||||
from gperf.texi on 15 April 1998 -->
|
||||
from gperf.texi on 20 August 2000 -->
|
||||
|
||||
<TITLE>User's Guide to gperf - Contributors to GNU gperf Utility</TITLE>
|
||||
<TITLE>Perfect Hash Function Generator - 1 Introduction</TITLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
Go to the <A HREF="gperf_1.html">first</A>, <A HREF="gperf_2.html">previous</A>, <A HREF="gperf_4.html">next</A>, <A HREF="gperf_11.html">last</A> section, <A HREF="gperf_toc.html">table of contents</A>.
|
||||
<P><HR><P>
|
||||
|
||||
|
||||
<H1><A NAME="SEC5" HREF="gperf_toc.html#TOC5">Contributors to GNU <CODE>gperf</CODE> Utility</A></H1>
|
||||
<H1><A NAME="SEC5" HREF="gperf_toc.html#TOC5">1 Introduction</A></H1>
|
||||
|
||||
<P>
|
||||
<CODE>gperf</CODE> is a perfect hash function generator written in C++. It
|
||||
transforms an <VAR>n</VAR> element user-specified keyword set <VAR>W</VAR> into a
|
||||
perfect hash function <VAR>F</VAR>. <VAR>F</VAR> uniquely maps keywords in
|
||||
<VAR>W</VAR> onto the range 0..<VAR>k</VAR>, where <VAR>k</VAR> >= <VAR>n</VAR>. If <VAR>k</VAR>
|
||||
= <VAR>n</VAR> then <VAR>F</VAR> is a <EM>minimal</EM> perfect hash function.
|
||||
<CODE>gperf</CODE> generates a 0..<VAR>k</VAR> element static lookup table and a
|
||||
pair of C functions. These functions determine whether a given
|
||||
character string <VAR>s</VAR> occurs in <VAR>W</VAR>, using at most one probe into
|
||||
the lookup table.
|
||||
|
||||
<UL>
|
||||
<LI>
|
||||
|
||||
The GNU <CODE>gperf</CODE> perfect hash function generator utility was
|
||||
originally written in GNU C++ by Douglas C. Schmidt. It is now also
|
||||
available in a highly-portable "old-style" C version. The general
|
||||
idea for the perfect hash function generator was inspired by Keith
|
||||
Bostic's algorithm written in C, and distributed to net.sources around
|
||||
1984. The current program is a heavily modified, enhanced, and extended
|
||||
implementation of Keith's basic idea, created at the University of
|
||||
California, Irvine. Bugs, patches, and suggestions should be reported
|
||||
to <CODE><bug-gnu-utils@gnu.org></CODE> and <CODE><schmidt@ics.uci.edu></CODE>.
|
||||
|
||||
<LI>
|
||||
|
||||
Special thanks is extended to Michael Tiemann and Doug Lea, for
|
||||
providing a useful compiler, and for giving me a forum to exhibit my
|
||||
creation.
|
||||
|
||||
In addition, Adam de Boor and Nels Olson provided many tips and insights
|
||||
that greatly helped improve the quality and functionality of <CODE>gperf</CODE>.
|
||||
</UL>
|
||||
</P>
|
||||
<P>
|
||||
<CODE>gperf</CODE> currently generates the reserved keyword recognizer for
|
||||
lexical analyzers in several production and research compilers and
|
||||
language processing tools, including GNU C, GNU C++, GNU Pascal, GNU
|
||||
Modula 3, and GNU indent. Complete C++ source code for <CODE>gperf</CODE> is
|
||||
available via anonymous ftp from <CODE>ftp://ftp.gnu.org/pub/gnu/gperf/</CODE>.
|
||||
A paper describing <CODE>gperf</CODE>'s design and implementation in greater
|
||||
detail is available in the Second USENIX C++ Conference proceedings.
|
||||
|
||||
</P>
|
||||
<P><HR><P>
|
||||
Go to the <A HREF="gperf_1.html">first</A>, <A HREF="gperf_2.html">previous</A>, <A HREF="gperf_4.html">next</A>, <A HREF="gperf_11.html">last</A> section, <A HREF="gperf_toc.html">table of contents</A>.
|
||||
</BODY>
|
||||
|
||||
Reference in New Issue
Block a user