Formal Languages and Automata Theory

advertisement
Lecture One:
Automata Theory
Amjad Ali
Automata Theory, Lecture 1, slide 1
Automata theory



The word “Automata“ is the plural of “automaton"
which simply means any machine.
automata theory is the study of abstract machines
and problems they are able to solve.
Automata theory is closely related to formal language
theory as the automata are often classified by the
class of formal languages they are able to recognize.
Automata Theory, Lecture 1, slide 2
Abstract Machine



An abstract machine, also called an abstract computer,
is a theoretical model of a computer hardware or software
system used in Automata theory.
Abstraction of computing processes is used in both the
computer science and computer engineering disciplines and
usually assumes discrete time paradigm.
abstract machines are often used in thought experiments
regarding computability or to analyze the complexity of
algorithms
Automata Theory, Lecture 1, slide 3
What do we do here?



We construct abstract models of computers and
computations
These models possess the important features
that are common to both hardware and software
These features are essential to many of the
special and complex constructs we encounter
while working with computers
Automata Theory, Lecture 1, slide 4
Models


The construction of models is one of the
essentials of any scientific discipline.
The usefulness of a discipline is often
dependent on the existence of simple,
yet powerful, theories and laws.
Automata Theory, Lecture 1, slide 5
Automaton




An automaton is an abstract model of a digital
computer
It has a mechanism to read input (string over a
given alphabet, e.g. strings of 0’s and 1’s on S
= {0,1}) written on an input file.
A finite automaton has a set of states
Its control moves from state to state in
response to external “inputs”
Automata Theory, Lecture 1, slide 6
Automaton




With every automaton, a transition function is
associated which gives the next state in terms
of the current state
An automaton can be represented by a graph in
which the vertices give the internal states and
the edges transitions
The labels on the edges show what happens (in
terms of input and output) during the
transitions
An automaton operates in discrete time frame
Automata Theory, Lecture 1, slide 7
Components of an automaton



Input file : Contains strings of input
symbols
Storage unit: consists of an unlimited
number of cells, each capable of holding
a single symbol from an alphabet
Control unit : can be in any one of a finite
number of internal states and can change
states in defined manner
Automata Theory, Lecture 1, slide 8
Transitions from start state to
end state
transition
Present state
M,C,G,W = f
•There are 4 objects
Cabbage, Man, Wolf and
Goat on one bank and there
is a boat
•All 4 have to cross the river
so that (C,G) or (W,G) are
not left at one place
•Man rows the boat and
takes one at a time
Automata Theory, Lecture 1, slide 9
final state
f = M,C,G,W
Intermediate states
Class assignment

(M,C,G,W=f) =………..= (f =M,C,G,W)
Automata Theory, Lecture 1, slide 10
Applications of Automata




A variety of properties concerning the models,
grammars, and languages will be proven.
The existence or non-existence of algorithms for
processing languages and language processors will be
proven.
These algorithms form the basis of tools for processing
languages, e.g., parsers, compilers, assemblers, etc.
Other algorithms will form the basis of tools that
automatically construct language processors, e.g.,
yacc, lex, etc.


Note that our perspective will be similar to, yet different from
a compiler class.
Additionally, some things will be proven to be noncomputable, e.g., the enhanced compiler.
Automata Theory, Lecture 1, slide 11
Different kinds of automata


This was only one example of a computational
device, and there are others
We will look at different devices, and look at these
kinds of questions:



What kinds of problems can a given type of device
solve?
What things are impossible for this kind of device?
Is one type of device more powerful than another?
Automata Theory, Lecture 1, slide 12
Some devices we will see
finite automata
Devices with a finite amount of memory. Used to model
“small” computers.
push-down
automata
Devices with infinite memory that can be accessed in a
restricted way.
Used to model parsers, etc.
Turing Machines
Devices with infinite memory. Used to model any
computer.
time-bounded
Turing Machines
Infinite memory, but bounded running time.
Used to model any computer program that runs in a
“reasonable” amount of time.
Automata Theory, Lecture 1, slide 13
Some highlights of the course


Finite automata
 We will understand what kinds of things a device
with finite memory can do, and what it cannot do
 Introduce simulation: the ability of one device to
“imitate” another device
 Introduce nondeterminism: the ability of a device to
make arbitrary choices
Push-down automata
 These devices are related to grammars, which
describe the structure of programming (and natural)
languages
Automata Theory, Lecture 1, slide 14
Some highlights of the course

Turing Machines


This is a general model of a computer, capturing
anything we could ever hope to compute
But there are many things that computers cannot
do:
Automata Theory, Lecture 1, slide 15
Some highlights of the course

Time-bounded Turing Machines


Many problems are possible to solve on a
computer in principle, but take too much
time in practice
Traveling salesman: Given a list of cities,
find the shortest way to visit them and
come back home
Automata Theory, Lecture 1, slide 16
Download