# Techreports & C++ toolkit: Finite automata and reg. exp. algorithms

## watson@win.tue.nl (Bruce W. Watson)Fri, 10 Jun 1994 23:53:32 GMT

From comp.compilers

Related articles
Techreports & C++ toolkit: Finite automata and reg. exp. algorithms watson@win.tue.nl (1994-06-10)
| List of all articles for this month |

 Newsgroups: comp.compilers From: watson@win.tue.nl (Bruce W. Watson) Keywords: report, C++ Organization: Eindhoven University of Technology, the Netherlands Date: Fri, 10 Jun 1994 23:53:32 GMT

Hi All,

I would like to announce a new C++ toolkit for finite automata and regular
expressions, and a couple of technical reports describing the toolkit.

The full citations of the reports are:
An introduction to the FIRE engine: A C++ toolkit for FInite
automata and Regular Expressions'' by Bruce W. Watson,
Computing Science Note 94/21, Eindhoven University of Technology, The
Netherlands, 1994.

The design and implementation of the FIRE engine: A C++ toolkit for
FInite automata and Regular Expressions'' by Bruce W. Watson,
Computing Science Note 94/22, Eindhoven University of Technology, The
Netherlands, 1994.

The algorithms given in these reports have been implemented directly from
the taxonomies of finite automata algorithms. The papers in which the
taxonomies appear, are announced in another news posting in this newsgroup.

The abstracts are (respectively):
\begin{abstract}
This paper is an introduction to the programmer's interface of version 1.1 of
the \bff{FIRE engine}. The \bff{FIRE engine} is a C++ class library
implementing finite automata and regular expression algorithms. The algorithms
implemented in the toolkit are almost all of those presented in the taxonomies
of finite automata algorithms \cite{constax,mintax}. None of the implementation
details of the library are discussed --- such design and implementation details
are given in \cite{design}.

The toolkit is unique in providing implementations of all of the known
algorithms for constructing finite automata. The implementations, which were
developed with efficiency in mind, are intended for use in production quality
applications. No shell or graphical user-interface is provided, as the toolkit
is intended for integration into applications. The implementations of the
algorithms follow directly from the abstract algorithms appearing in
\cite{constax,mintax}. As such, the toolkit also serves as an educational
example of the implementation of abstract algorithms.
\end{abstract}

\begin{abstract}
This paper describes the design and implementation of version 1.1 of the
\bff{FIRE engine}. The \bff{FIRE engine} is a C++ class library implementing
finite automata and regular expression algorithms. The algorithms implemented
in the toolkit are almost all of those presented in the taxonomies of finite
automata algorithms \cite{constax,mintax}. The reader is assumed to be familiar
with the two taxonomies and with advanced C++ programming techniques.

The toolkit is implemented largely in an object-oriented style, with finite
automata and regular expressions being defined as classes. All of the classes
and functions in the toolkit are presented in the same format. For each class
(or function) the format includes a short description of its behaviour, details
of its implementation, and techniques for improving its performance.
\end{abstract}

The reports may be obtained by anonymous ftp from:
ftp.win.tue.nl (also known as 131.155.70.100)
in directory:
pub/techreports/pi/automata/toolkit
Files WARRANTY (says that there is NO warranty)
design...
intro...
fire.tar.gz (contains the actual C++ code)

(Files with 600dpi as a substring in their name are for use with
high-resolution printers.)
The report contained in design.ps.gz includes all of the code typeset,
meaning that the code contained in fire.tar.gz need not be printed for
viewing.
If you ftp the reports, would you kindly drop me some email telling me
what you fetched. The numbers turn out to be interesting to the accounting
people that evaluate the performance of the Faculty.

Paper copies of the reports can also be obtained by emailing me:
watson@win.tue.nl
or paper mailing me:
Bruce W. Watson
HG 7.39
Faculty of Computing Science
Eindhoven University of Technology
P.O. Box 513
5600 MB Eindhoven
The Netherlands
--
Bruce Watson
watson@win.tue.nl
watson@stack.urc.tue.nl
--

Post a followup to this message