[gnu.g++] gperf 2.3 available

schmidt@zola.ics.uci.edu (Doug Schmidt) (02/16/90)

The latest C++ version of GNU GPERF (a perfect hash function
generator) is now available via anonymous ftp from ics.uci.edu
(128.195.1.1) in the ~ftp/pub directory in the file gperf-2.3.tar.Z.
Aside from miscellaneous bug fixes, the main change from previous
versions is support for generating C++ code as well as the original C
code.

Below is a short description of GPERF, taken from the paper soon to appear
in the upcoming USENIX C++ Conference in San Francisco.

Doug

----------------------------------------
\begin{abstract}
{\bf gperf} is a perfect hash function generator written in C++.  It
translates an $n$ element user-specified keyword set $W$ into a
perfect hash function $F$.  $F$ uniquely maps keywords in $W$ onto the
range 0..$k - 1$, where $k \ge n$.  If $k = n$ then $F$ is a {\em
minimal} perfect hash function.  {\bf gperf} generates a $k$ element
static lookup table and either a pair of C functions or a C++ class.
The generated code determines whether a given string $s$ occurs in
$W$, using at most one probe into the lookup table.
 
{\bf gperf} 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.
  
This paper provides an overview of perfect hashing and discusses the
impact of C++ on the overall program design and maintenance effort.
It also describes the interface, features, and implementation
strategies incorporated in {\bf gperf} and presents the results of an
empirical comparison between {\bf gperf}-generated recognizers and
several other popular reserved word lookup techniques.
   
C++ source code for {\bf gperf} is available via anonymous ftp from
{\bf ics.uci.edu} (128.195.1.1).  {\bf gperf} is also distributed
along with the GNU libg++ library.  A highly portable, functionally
equivalent K\&R C version of {\bf gperf} is also archived in
comp.sources.unix, volume 20.  
\end{abstract}
--
A monk asked Kegon, ``How does an enlightened      | schmidt@ics.uci.edu (ARPA)
one return to the ordinary world?'' Kegon replied, | office: (714) 856-4043
``A broken mirror never reflects again; fallen 
flowers never go back to the old branches.''