www.angelfire.com/dragon/letstry
cwave04 at yahoo dot com
DFA tutorial
The finite automaton tutorial is growing continuously, as
I am adding
more and more stuff to it.
The pages are broadly classified into a number of groups. The
"Introduction" group naturally comes first, and is a prerequisite
for the other groups. The other groups may be read in any order.
Introduction
Intro 1
Introduction to the concept using interactive experiments. If
you do not know anything about finite automata, or do not find them
interesting, then do please start here.
Intro 2
Formal definitions. In this page we present some standard
terminology that will help you to tap other resources on finite
automata.
Intro 3
Application in lexical analysis. This is a simple yet very
important way to make finite automata do something for us.
Intro 4
More lexical analysis. Finite automata as recognizers.
Intro 5
Handling "infinity" with a finite automaton.
DFA in compilers
This is a somewhat complicated topic.
Comp 1
Here we start the discussion of a variant of finite automata,
called Push Down Automata. These "intelligent" machines form the
core of modern compilers. This page is interactive, and uses
javascript.
Comp 2
This continues the discussion of the last page.
Comp 3
More on pushdown automata.
DFA in hardware
Hard 1
Finite automata in hardware. Electrical engineers have a
nice way to use a special kind of finite automata. Indeed, by the
term "finite automata" they often mean only this special
kind! Learn about them in this page. This page has interactive
Flash animations.
Hard 2
This page continues the discussion of finite automata in
electronics. Here we treat a real life example of a microcontroller interfacing a caller
id decoder.
Hard 3
This page gives a nifty trick of implementing such state machines in
C using XML and XSL. Adobe Flex uses a very similar trick for
creating Flash applications.
Hard 4
Some examples motivated by a mobile phone.