DFA::Kleene is a Kleene's Algorithm for Deterministic Finite Automata.
Calculates the "language" (set of words) accepted (= recognized) by a Deterministic Finite Automaton.
use DFA::Kleene qw(initialize define_accepting_states define_delta kleene example);
use DFA::Kleene qw(:all);
Define the number of states (state #1 is the "start" state!) of your Deterministic Finite Automaton and the alphabet used (as a string containing all characters which are part of the alphabet).
Define which states are "accepting states" in your Deterministic Finite Automaton (list of state numbers).
Define the state transition function "delta" (arguments are: "from" state, character (or empty string!) read during the transition, "to" state).
You need several calls to this function in order to build a complete transition table describing your Deterministic Finite Automaton.
@language = &kleene();
Returns a (sorted) list of regular expressions describing the language (= set of patterns) recognized ("accepted") by your Deterministic Finite Automaton.
Calculates the language of a sample Deterministic Finite Automaton.
Prints a (sorted) list of regular expressions which should be equivalent to the following regular expression:
This is the same as
The routines in this module allow you to define a Deterministic Finite Automaton and to compute the "language" (set of "words" or "patterns") accepted (= recognized) by it.
Actually, a list of regular expressions is generated which describe the same language (set of patterns) as the one accepted by your Deterministic Finite Automaton.
The output generated by this module can easily be modified to produce Perl-style regular expressions which can actually be used to recognize words (= patterns) contained in the language defined by your Deterministic Finite Automaton.
Other modules in this series (variants of Kleene's algorithm):
Math::MatrixBool (see "Kleene()")
Math::MatrixReal (see "kleene()")