CSE 211
CSE 211 (Theory of Computation)
Atif Hasan Rahman
Department of Computer Science and Engineering
Bangladesh University of Engineering & Technology
Adapted from slides by
Dr. Muhammad Masroor Ali
Atif Hasan Rahman Theory of Computation
CSE 211 TOC
Theory of Computation
Three areas of theory of computation
Automata
Computability
Complexity
Linked by the question
What are the fundamental capabilities and limitations of
computers?
Atif Hasan Rahman Theory of Computation
CSE 211 TOC
Theory of Computation
Automata
Automaton - a machine made in imitation of a human being
DFA, NFA
Context-free grammar (CFG), pushdown automata (PDA)
Computability
Decidability
What can or cannot be solved
Complexity
Tractability
What can or cannot be solved “efficiently”
Time complexity: P, NP, NP-complete, NP-hard
Space complexity: PSPACE
Atif Hasan Rahman Theory of Computation
CSE 211 TOC
Theory of Computation
“Computer science is no more about computers than
astronomy is about telescopes. ”
— Edsger W. Dijkstra
Atif Hasan Rahman Theory of Computation
CSE 211 TOC
Theory of Computation
Computation and computability
Building fast vehicles vs can we exceed the speed of light?
Building efficient engines vs can we build a perpetual
motion machine?
Atif Hasan Rahman Theory of Computation
CSE 211 TOC
Models of Computation
Finite Automata
DFA, NFA
Limited amount of memory
Applications in compilers, control units of hardware, etc.
Context-free grammar
More expressive than finite automata
Applications in compilers, AI and many other areas
Turing Machine
Even more powerful
Can simulate a computer!
Problems Turing machine cannot solve are beyond
theoretical limits of computation
Atif Hasan Rahman Theory of Computation
CSE 211 TOC
Alan Turing
“father of theoretical computer science
and artificial intelligence” - wiki
Proposed Turing machines
A general model of computation
Can simulate a computer
Helped break the Enigma code during
WW II
Proposed the Turing test for AI
Distinguishing humans and computers
through interrogation
Atif Hasan Rahman Theory of Computation
CSE 211 TOC
Syllabus
Regular languages
Regular expressions
Finite automata
Deterministic finite automata (DFA)
Nondeterministic finite automata (NFA)
Context-free languages
Context free grammars (CFG)
Pushdown automata (PDA)
Turing machines
Equivalence with a computer
Decidability
Complexity
Time and space complexity
Atif Hasan Rahman Theory of Computation
CSE 211 TOC
Syllabus
Regular languages
Regular expressions
Finite automata
Deterministic finite automata (DFA)
Nondeterministic finite automata (NFA)
Context-free languages
Context free grammars (CFG)
Pushdown automata (PDA)
Turing machines
Equivalence with a computer
Decidability
Complexity
Time and space complexity
Atif Hasan Rahman Theory of Computation
CSE 211 TOC
Syllabus
Regular languages
Regular expressions
Finite automata
Deterministic finite automata (DFA)
Nondeterministic finite automata (NFA)
Context-free languages
Context free grammars (CFG)
Pushdown automata (PDA)
Turing machines
Equivalence with a computer
Decidability
Complexity
Time and space complexity
Atif Hasan Rahman Theory of Computation
CSE 211 TOC
Regular Languages
Regular languages
Languages recognized by finite automata - DFA, NFA
Languages described by regular expressions
Limitations
Finite number of states
Hence finite amount of memory
An example of a non-regular language
Atif Hasan Rahman Theory of Computation
CSE 211 TOC
Regular Languages
Regular languages
Languages recognized by finite automata - DFA, NFA
Languages described by regular expressions
Limitations
Finite number of states
Hence finite amount of memory
An example of a non-regular language
B = {0n 1n |n 0}
Atif Hasan Rahman Theory of Computation
CSE 211 TOC
Regular Languages
Regular languages
Languages recognized by finite automata - DFA, NFA
Languages described by regular expressions
Limitations
Finite number of states
Hence finite amount of memory
An example of a non-regular language
B = {0n 1n |n 0}
Atif Hasan Rahman Theory of Computation
CSE 211 TOC
Context-Free Languages
Context-Free Languages
Languages described by context-free grammars (CFG)
Languages recognized by pushdown automata (PDA)
Extensively used in compilers (parsers)
First used in study of human languages
Atif Hasan Rahman Theory of Computation
CSE 211 TOC
An Informal Example
Language of palindromes
Palindrome
A string that reads the same backward and forward
0110, 11011, ✏
Recursive definition for palindromes (over binary alphabet)
0, 1 and ✏ are palindromes
if w is a palindrome, then 0w0 and 1w1 are palindromes
Atif Hasan Rahman Theory of Computation
CSE 211 TOC
An Informal Example
The word used for the fear of palindromes. The word
aibohphobia is itself a palindrome
https://www.urbandictionary.com/define.php?
term=aibohphobia
Atif Hasan Rahman Theory of Computation
CSE 211 TOC
An Informal Example
A CFG for palindromes
P !✏
P !0
P !1
P ! 0P0
P ! 1P1
Atif Hasan Rahman Theory of Computation
CSE 211 TOC
Exercise
Design a CFG for the language
{0n 1n |n 0}
✏
01
0011
000111
...
Atif Hasan Rahman Theory of Computation
CSE 211 TOC
n n
CFG for {0 1 |n 0}
A CFG for the language {0n 1n |n 0}
A!✏
A ! 0A1
Atif Hasan Rahman Theory of Computation
CSE 211 TOC
Logistics
Email
[email protected]
Textbook
J. E. Hopcroft, R. Motwani, and J. D. Ullman, Introduction
to Automata Theory, Languages, and Computation
Reference books
M. Sipser, Introduction to the Theory of Computation
H. R. Lewis and C. H. Papadimitriou, Elements of the
Theory of Computation
Atif Hasan Rahman Theory of Computation