[Home]

Table of contents


DFA tutorial

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 <i>only</i> 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.