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

Reply via email to