Pramod Sethy: 4 Semester 2021
Pramod Sethy: 4 Semester 2021
Introduction 1
Pramod Sethy
outlines
• Syllabus
• Why study the theory of computing?
• Automata Theory.
• Historical Perspective.
• Languages & Grammars.
• The Chomsky Hierarchy.
• Examples.
• According to Chomsky Hierarchy.
Computation Theory Books Back
Books
Back
Introduction.ppt
Books
Back
8
Back
Historical Perspective.
• The history of computer science began long before our
modern discipline of computer science, usually appearing
in forms like mathematics or physics. Developments in
previous centuries alluded to the discipline that we now
know as computer science.
9
History: Alchemy, Fiction and Hoaxes
12
Back
• English mathematician
13
Back
Church–Turing thesis
• In 1933, Kurt Gödel: general
recursive functions.
• In 1936, Alonzo Church created a
method for defining functions called
the λ-calculus.
• in 1936, Alan Turing created a
theoretical model for machines, now
called Turing machines,
• Church and Turing proved that these
three formally defined classes of
computable functions coincide: a
function is λ-computable if and only if
it is Turing computable, and if and
only if it is general recursive.
14
Back
Historical Perspective
1930s • Alan Turing studies Turing machines
• Decidability
• Halting problem
1940-1950s • “Finite automata” machines studied
• Noam Chomsky proposes the
“Chomsky Hierarchy” for formal
languages
1969 Cook introduces “intractable” problems
or “NP-Hard” problems
1970- Modern computer science: compilers,
16
computational & complexity theory evolve
Back
Regular Context-
(DFA) free Context-
Recursively-
(PDA) sensitive
enumerable
(LBA)
(TM)
18
Back
Automata theory
Automata theory studies the laws of computation.
A simple computer
I TCH
SW
BATTERY
input: switch
output: light bulb
actions: flip switch
states: on, off
Back
Back
A simple “computer”
I TCH
SW
input: switch
bulb is on if and only if
output: light bulb
there was an odd number of
actions: f for “flip switch” flips
states: on, off
Back
Another “computer”
1
1 start off off
1
2 2 2 2
BATTERY
1
2
off on
1
A design problem
1 4
=
5
BATTERY
2
3
A design problem
off on
A gumball machine
machine takes $5 and $10 coins
a gumball costs $15
actions: +5, +10, Release
一五 +10 +10
+5 +5 +5, +10
$0 $5 $10
R R R +5, +10
R
Different kinds of machines
Back
+10 +10
+5 +5 +5, +10
$0 $5 $10
R R R +5, +10
R
• This was only one example of a machine
#include <stdio.h>
main(t,_,a)char *a;{return!
0<t?t<3?main(-79,-13,a+main(- banana
Given the code of a 87,1-_,
?
main(-86,0,a+1)+a)):1,t<_?
main(t+1,_,a):3,main(-94,-
you main(_,t,
"@n'+,#'/*{}w+/w#cdnr/+,
{}r/*de}+,/*{*+,/w{%
Badr
Yanbu
Makah
Rabigh
Jeddah
Preliminaries of automata
theory
• How do we ask the question
Can machine A solve problem B?
Problems
• Examples of problems we will consider
– Given a word s, does it contain “to” as a subword?
– Given a number n, is it divisible by 7?
– Given two words s and t, are they the same?
Mathematical Preliminaries
• Sets
• Functions
• Relations
• Graphs
• Proof Techniques
35