Course Code: To be Provided
Theory of Automata and Formal Languages
ODD/EVEN SEM 2022-23
A. Senthil, Prof / CSE
Course Information
Instructor Dr. A. Senthil, Professor/CSE
Contact Info Room #C 316, C-Block Third Floor
No of Credits 3
Lectures 2 per week
Tutorials 1 per week (Important)
Pre-requisite Discrete Mathematics
Website https://moodle.kluniversity.in/login/inde
x.php
Course Organization
Text Book:
- J. E. Hopcroft, R. Motwani, J. D. Ullman
Introduction to Automata Theory,
Languages, and Computation, Second Edition,
Addison-Wesley, New York,
- Peter Linz
An Introduction to Formal Languages and Automata
– Evaluation Scheme: To be Updated
A. Senthil, Asst. Prof / CSE
The Subject
• Theory of Computation
• Automata Theory
• Theory of Automata and Formal Languages
• Formal Language theory
Objective
• Design a Machine which solves almost all types
of Problems
Outcomes
Capable of Answering following Questions
• Given a Problem – Can you able to identify
whether it can be solvable or not?
• If it is solvable then, which machine is
capable enough to solve it?
Course Outcomes
Course Outcome—1:To design finite machines, regular expressions for regular
languages and to prove existence of non-regular languages.
Course Outcome—2: To design Context Free Grammars for Context Free Languages
and simplify them
Course Outcome—3: To design Push Down Automata for CFL and to prove existence
of non-Context Free languages
Course Outcome—4: To design a Turing machine for a given problem and to prove
the existence of Non-Turing acceptable languages
A. Senthil, Prof / CSE
What does Automata Theory mean?
• An Open ended computer science
Theoritical
discipline that concerns an abstract
device called “automaton”, which
performs a specific computational or
recognition function.
Identification
• Networks of automata are designed
to mimic human behaviour
What we will do
Automata = abstract computing devices
Turing studied Turing Machines (= computers)
before there were any real computers
We will also look at simpler devices than
Turing machines (Finite State Automata,
Pushdown Automata, . . . ), and specification
means, such as grammars and regular
expressions.
NP-hardness = what cannot be efficiently
computed
Computation
CPU memory
temporary memory
input memory
CPU
output memory
Program memory
3
Example: f ( x) = x
temporary memory
input memory
CPU
output memory
Program memory
compute x*x
2
compute x *x
3
f ( x) = x
temporary memory
input memory
x=2
CPU
output memory
Program memory
compute x*x
2
compute x *x
3
temporary memory f ( x) = x
z = 2*2 = 4
f ( x) = z * 2 = 8
input memory
x=2
CPU
output memory
Program memory
compute x*x
2
compute x *x
3
temporary memory f ( x) = x
z = 2*2 = 4
f ( x) = z * 2 = 8
input memory
x=2
CPU
f ( x) = 8
Program memory output memory
compute x*x
2
compute x *x
Automaton
temporary memory
Automaton
input memory
CPU
output memory
Program memory
Different Kinds of Automata
Automata are distinguished by the temporary memory
• Finite Automata: no temporary memory
• Pushdown Automata: stack
• Turing Machines: random access memory
Finite Automaton
temporary memory
input memory
Finite
Automaton
output memory
Example: Vending Machines
(small computing power)
Pushdown Automaton
Stack Push, Pop
input memory
Pushdown
Automaton
output memory
Example: Compilers for Programming Languages
(medium computing power)
Turing Machine
Random Access Memory
input memory
Turing
Machine
output memory
Examples: Any Algorithm
(highest computing power)
Power of Automata
Finite Pushdown Turing
Automata Automata Machine
Less power More power
Solve more
computational problems