On Wed, 15 Dec 2004, Orton, Yves wrote:
The term "DFA::StateMachine" is like say "Car::Car".
Right.
A DFA is by definition a state machine (it stands for "determinisitic finite state automata"). And after a review of the code IMO using the term DFA is a bad call. Normally "DFA" implies a specific type of implementation of a pattern matcher (as compared to say perls NFA [nondeterministic finite state automata] regex engine).
I disagree. A DFA can be used to implement a pattern matcher, but that's not all. A DFA is just a data structure.
This is more of a turing machine than what is normally called a DFA. A term that you encounter in the literature for this type of construct is an FSA (finite state automaton/aka turing machine) which doesn't have such a strong association to pattern matching.
FSA is a more general term that encompasses both DFA and NFA. Not having checked the code, I'm not sure if it supports nondeterministic transitions.
However, you're incorrect in saying FSA==turing machine. The key limitation is that FSAs are *finite* and a turing machine is not. More details:
http://en.wikipedia.org/wiki/Finite_state_machine http://www.cs.wm.edu/~coppit/wiki/index.php?title=Quals:_Computer_Theory_and_Algorithms
I'm not sure if this discussion helps the OP any, but I thought I should clarify. :)
David
P.S. My whiz-bang super-fast computer is also equivalent in power to a DFA because its memory is finite.
_____________________________________________________________________ David Coppit [EMAIL PROTECTED] The College of William and Mary http://coppit.org/
"Government big enough to supply everything you need is big enough to take everything you have ... The course of history shows that as a government grows, liberty decreases." -- Thomas Jefferson