Finite-state machine software, products, and projects

Please tell us if you know of finite-state machine software that isn't on this list.
Aleph FSM ALEPH is a high-energy physics experiment at the large electron-positron collider LEP at CERN. The Information and Programming Technology Group (IPT) of the ECP Division at CERN is active in software development support and information systems for experiments, including FSM technology.

AMORE The AMORE system is a program for the computation of finite automata, syntactic monoids of regular languages, and (possibly star-free) regular expressions. The system is implemented in C under Unix or DOS. A graphical component generates state graphs of finite automata on the screen from given transition tables (under Unix only).

AUTOMATA (Milan ) From the COLOS project at the University of Milan.
AUTOMATA is a tool for modelling automata and experimenting with grammars. The environment deals with: finite state automata (FSA, both deterministic and non deterministic), push-down automata - PDA (both deterministic and non deterministic), finite state transducers (Moore and Mealy machines), grammars, regular expressions, pattern matching It provides the visualisation of some important algorithms, such as the transformation of non deterministic automata into deterministic ones or the minimisation. The automata are defined by entering their state diagram in a graphic editor or by giving a grammar.

AUTOMATA (Pittsburgh) automata is a Mathematica based package that manipulates finites state machines and their syntactic semigroups. A number of operations on 1-dim cellular automata are also available. All the algorithms are implemented in Mathematica, and a good number of them is also implemented externally in a C++ library (e.g., power automaton construction, minimization using Hopcroft's algorithm, D-class decomposition). The C++ code can be used directly or, via MathLink, from within Mathematica. On a standard workstation, the external code allows one to generate machines and/or semigroups with several 10000 elements.

AUTOMATES By M. Champarnaud.

Busy Beaver This story starts around 1960. Tibor Rado, a professor at the Ohio State Univers ity, thought of a simple non-computable function besides the standard halting problem for Turing machines. Given a fixed finite number of symbols and states, select those Turing machine programs which eventually halt when run with a blank tape. Among these programs find the maximum number of non-blank symbols left on the tape when they halt. Alternative ly, find the maximum number of time steps before halting. This function is well-defined but r apidly becomes un-computable for even small number of states and symbols.

DICIO project Applies finite automata to process large vocabularies. Researchers are Tomasz Kowaltowski, Claudio Leonardo Lucchesi, and Jorge Stolfi.

FANCY Hardware Verification Tool. FANCY is a BDD-based tool for formal hardware verification. It's a collection of new and known FSM equivalence and inclusion check algorithms with a graphical user interface.

FASTUS Text Understanding System. FASTUS is a (slightly permuted) acronym for Finite State Automaton Text Understanding System. It is a system for extracting information from free text in English, and potentially other languages as well, for entry into a database, and potentially for other applications. It works essentially as a set of cascaded, nondeterministic finite state automata.

Finite-State Utilities - a set of programs and scripts for creation and use of FSAs for natural language processing, including morphological analysis, spelling correction, restoration of diacritics, perfect hashing, acquisition of new words into morphological dictionaries. The automata are acyclic.

Fire Lite Bruce Watson's C++ toolkit for finite-state machines.

FLAP (Formal Languages and Automata Package), a tool for designing, and simulating several variations of finite automata, pushdown automata, and Turing machines. Using FLAP, one can draw a picture (transition diagram) of a nondeterministic automaton. Once the picture is complete, the user enters an input string and then controls a step-by-step simulation showing multiple stacks, one for each possible configuration. Additional features of FLAP include a fast simulation mode, and retracing part or all of a simulation. FLAP is currently used worldwide in teaching automata theory. See also LLparse and LRParse.

FSA Utilities in Prolog by Gertjan van Noord.
A few months ago there was some discussion whether or not finite state automaton operations (intersection, determinization, minimalization, intersection..) could be efficiently implemented in Prolog. I implemented a few of these things to see what can be done (and mostly as an exercise for myself). The package is implemented in SICStus Prolog, but it should not be too difficult to adapt it to other Prologs. Upon installation of the package a Prolog saved state is built that can be used either as an interactive shell (as usual) or as a Unix filter.

GASP project
The goal of the Groups Automata and Semigroups Project is to facilitate interaction among people interested in computational aspects of geometric group theory including applications of formal languages and automata theory.

Grail+ Our C++ toolkit for finite-state machines and regular expressions.

Graphical Statecharts Editor
This report describes an editor I wrote for the Statecharts graphical language, which uses a hierarchy of interacting finite-state machines. The edito r is written using the [incr Tcl] add-on to the Tcl/Tk language. The editor keeps transitions attached, and allows for multiple, consistent views of the database.

Math Activities

LIBERO
Are you a programmer? Do you sincerely want to write better programs? Then take a look at Libero, a free software tool from iMatix. How do I use Libero? 1. Design your program visually as a state diagram; 2. Choose your programming language; 3. Generate a framework for your program; 4. Fill-in the framework to get from rapid prototype to working program; 5. Repeat until your program is perfect.

Mona Project
The Mona project devises new practical means of describing finite-state systems in formal logic. Our applications include types and semantics for pointers in programming languages; temporal logic; verification of distributed systems and parameterized hardware; user interfaces for regular expressions; and design architectures for object-oriented programming languages.

Natural Language Software Registry
Contains pointers to a large number fo software projects having to do with natural language processing, including data sets, text processing, multicomponent systems, knowledge representation systems, generation systems, speech signal analysis, morphological analysis, semantic and pragmatic analysis, and formalisms.

REACTO Verification System. The REACTO system supports formal verification of reactive systems specified as hierarchical finite state machines. Reacto has been used to specify DES code machines, interactive electronic technical manuals for aircraft maintenance, and other reactive systems.

Ragel Ragel compiles finite state machines from regular languages into runnable C code. It allows the programmer to embed actions at any point in a regular language and to control non-determinism in the resulting machines. It understands concatenation, union, kleene star, subtraction, and intersection, as well as some helpers such as negation. Ragel's finite state machines are closed under all of its operators. This property allows for arbitrary regular lanuages to be described. It can be used to create a parser for any language that is regular.

The Automaton Standard Template Library by Vincent Le Maout (under supervision of Dominique Revuz).

The Finite State Machine Explorer - a Java program for manipulation of finite-state automata.

The Liege Automata-Based Symbolic Handler (LASH) is a tool set for representing infinite sets and exploring infinite state spaces. It is based on finite-state representations, which rely on finite-state automata for representing and manipulating infinite sets of values with respect to various data domains.

Turing's World Introduced by Alan Turing in 1936, Turing machines are one of the key abstractions used in modern computability theory, the study of what computers can and cannot do. A Turing machine is a particularl... In Turing's World the tape is represented by a narrow window that sits at the bottom of the screen. Here is what the tape looks like with a series of A's and B's written on it, and with the read/write... A Turing machine has a finite number of states and is in exactly one of these states at any given time. Associated with these states are instructions telling the machine what action to perform if it i... Here, for example, is a state diagram of a Turing machine with two states

Unitex Unitex is a corpus processing system, based on automata-oriented technology. With this tool, you can handle electronic resources such as eletronic dictionaries and grammars and apply them. You can work at the levels of morphology, the lexicon and syntax. The main functions are

VIS (Verification Interacting with Synthesis) is a system for formal verification, synthesis, and simulation of finite state systems. It has been developed jointly at the University of California at Berkeley and the University of Colorado at Boulder.

Vista Products Vista's three main products are: State Vision High powered state machine editor. Supports concurrent and hierarchical state machines. Design Vision Event/Action thread editor. Graphical way of specifying arbitrary behavior. Vista Model Creator Table editor for combinational and state machine models. Convenient spreadsheet-like interface creates optimized models from function and state tables. Vista also markets: MCM Design Services Utilizing some advanced technology Vista has developed, we are currently offering an MCM design service.

WFST Library by Arnaud Adant, built on top of (see above) ASTL.

Xerox Lexical Technology XLT products perform tokenization (word breaking), morphological analysis and generation, part-of-speech tagging and sophisticated text compression. They are building blocks for virtually any natural-language processing application, including: sophisticated spell checking, generalized dictionary look-up, syntactic parsing, grammar checking, question answering, abstracting, fact extraction, and machine translation of natural languages.


The following packages appear to be unavailable:

BONeS FSM Editor The BONeS Finite State Machine Editor is an optional tool which enhances and complements BONeS DESIGNER's powerful toolset for even more demanding and complex modeling tasks. With the BONeS Finite Machine Editor, you can quickly model and analyze proprietary and emerging protocols and other system behavior. Finite State Machine Editor Features: *Simplifies complexity of simulation models, particularly network protocols, control, and system behavior *Substantially enhances and complements DESIGNER's powerful, hierarchical, block-diagram, data-flow modeling paradigm.


Top of page
Grail+ home page