Advertisement

FIRE Lite: FAs and REs in C++

  • Bruce W. Watson
Contributed Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1260)

Abstract

This paper describes a C++ finite automata toolkit known as FIRE Lite (Finite automata and Regular Expressions; Lite since it is the smaller and newer cousin of the FIRE Engine toolkit, also originally developed at the Eindhoven University of Technology). The client interface and aspects of the design and implementation are also described. The toolkit includes implementations of almost all of the known automata construction algorithms and many of the deterministic automata minimization algorithms. These implementations enabled us to collect performance data on these algorithms. The performance data, which we believe to be the first extensive benchmarks of the algorithms, are also summarized in this paper.

Keywords

Regular Expression Spare Part Finite Automaton Construction Algorithm Input String 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [ASU86]
    Aho, A.V., R. Sethi, and J.D. Ullman. Compilers: Principles, Techniques, and Tools. (Addison-Wesley, Reading, MA, 1988).Google Scholar
  2. [Brzo62]
    Brzozowski, J.A. Canonical regular expressions and minimal state graphs for definite events, in: Mathematical theory of Automata, Vol. 12 of MRI Symposia Series. (Polytechnic Press, Polytechnic Institute of Brooklyn, NY, 1962) 529–561.Google Scholar
  3. [BS86]
    Berry, G. and R. Sethi. From regular expressions to deterministic automata, Theoretical Computer Science48 (1986) 117–126.Google Scholar
  4. [CH91]
    Champarnaud, J.M. and G. Hansel. Automate: A computing package for automata and finite semigroups, J. Symbolic Computation12 (1991) 197–220.MathSciNetGoogle Scholar
  5. [Hopc71]
    Hopcroft, J.E. An n log n algorithm for minimizing the states in a finite automaton, in: Z. Kohavi, ed., The Theory of Machines and Computations. (Academic Press, New York, 1971) 189–196.Google Scholar
  6. [HU79]
    Hopcroft, J.E. and J.D. Ullman. Introduction to Automata, Theory, Languages, and Computation. (Addison-Wesley, Reading, MA, 1979).Google Scholar
  7. [John86]
    Johnson, J.H. INR: A program for computing finite automata, Technical Report, Department of Computer Science, University of Waterloo, Waterloo, Canada, January 1986.Google Scholar
  8. [JPTW90]
    Jansen, V., A. Pothoff, W. Thomas, and U. Wermuth, A short guide to the Amore system, Aachener Informatik-Berichte90(02), Lehrstuhl für Informatik II, (Universität Aachen, January 1990).Google Scholar
  9. [Leis77]
    Leiss, E. Regpack: An interactive package for regular languages and finite automata, Research Report CS-77-32, Department of Computer Science, University of Waterloo, Waterloo, Canada, October 1977.Google Scholar
  10. [MY60]
    McNaughton, R. and H. Yamada. Regular expressions and state graphs for automata, IEEE Trans. on Electronic Computers9(1) (1960) 39–47.Google Scholar
  11. [PTVF92]
    Press, W.H., S.A. Teukolsky, W.T. Vetterling and B.P. Flannery. Numerical Recipes in C: The Art of Scientific Computing. (Cambridge University Press, Cambridge, England, 2nd edition, 1992).Google Scholar
  12. [RW93]
    Raymond, D.R. and D. Wood. The Grail papers, Department of Computer Science, University of Waterloo, Canada. Available by ftp from CS-archive.uwaterloo.ca.Google Scholar
  13. [Thom68]
    Thompson, K. Regular expression search algorithms, Comm. ACM11(6) (1968) 419–422.Google Scholar
  14. [Wat93a]
    Watson, B.W. A taxonomy of finite automata construction algorithms, Computing Science Report 93/43, Eindhoven University of Technology, The Netherlands, 1993. Available for ftp from ftp.win.tue.ni in directory/pub/techreports/pi/automata/.Google Scholar
  15. [Wat93b]
    Watson, B.W. A taxonomy of finite automata minimization algorithms, Computing Science Report 93/44, Eindhoven University of Technology, The Netherlands, 1993. Available for ftp from ftp.win.tue.ni in directory/pub/techreports/pi/automata/.Google Scholar
  16. [Wat94a]
    Watson, B.W. An introduction to the FIRE Engine: A C++ toolkit for FI-nite automata and Regular Expressions, Computing Science Report 94/21, Eindhoven University of Technology, The Netherlands, 1994. Available for ftp from ftp.win.tue.nl in directory/pub/techreports/pi/automata/.Google Scholar
  17. [Wat94b]
    Watson, B.W. The design and implementation of the FIRE Engine: A C++ toolkit for Finite automata and Regular Expressions, Computing Science Report 94/22, Eindhoven University of Technology, The Netherlands, 1994. Available for ftp from ftp.win.tue.nl in directory/pub/techreports/pi/automata/.Google Scholar
  18. [Wat95]
    Watson, B.W.Taxonomies and Toolkits of Regular Language Algorithms. (Eindhoven University of Technology, The Netherlands, ISBN 90-386-0396-7, 1995).Google Scholar
  19. [Wat96]
    Watson, B.W. Implementing and using finite automata toolkits, in: Wahlster, W., Proceedings of the 12th European Conference on Artificial Intelligence (Budapest, Hungary, August 1996).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Bruce W. Watson
    • 1
  1. 1.Ribbit Software Systems Inc.1ST Technologies Research GroupKelownaCanada

Personalised recommendations