| DFA-Kleene documentation | view source | Contained in the DFA-Kleene distribution. |
DFA::Kleene - Kleene's Algorithm for Deterministic Finite Automata
Calculates the "language" (set of words) accepted (= recognized) by a Deterministic Finite Automaton
See Math::Kleene(3) for the theory behind this algorithm!
use DFA::Kleene qw(initialize define_accepting_states
define_delta kleene example); use DFA::Kleene qw(:all); &initialize(6,"ab");
&define_accepting_states(2,3,4,5);
&define_delta(1,'a',4);
@language = &kleene();
&example();
(a(a)*b)*a(a)*(b)*
((a+)b)*(a+)b*
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(3), Math::MatrixReal(3), Math::Kleene(3), Set::IntegerRange(3), Set::IntegerFast(3), Bit::Vector(3).
This man page documents "DFA::Kleene" version 1.0.
Steffen Beyer <sb@sdm.de>.
Copyright (c) 1996, 1997 by Steffen Beyer. All rights reserved.
This package is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| DFA-Kleene documentation | view source | Contained in the DFA-Kleene distribution. |