CSCI-2400
Models of Computation
Costas Busch - RPI 1
Computation
CPU memory
Costas Busch - RPI 2
temporary memory
input memory
CPU
output memory
Program memory
Costas Busch - RPI 3
3
Example: f ( x) x
temporary memory
input memory
CPU
output memory
Program memory
compute xx
2
compute x x
Costas Busch - RPI 4
3
f ( x) x
temporary memory
input memory
x2
CPU
output memory
Program memory
compute xx
2
compute x x
Costas Busch - RPI 5
3
temporary memory f ( x) x
z 2*2 4
f ( x) z * 2 8
input memory
x2
CPU
output memory
Program memory
compute xx
2
compute x x
Costas Busch - RPI 6
3
temporary memory f ( x) x
z 2*2 4
f ( x) z * 2 8
input memory
x2
CPU
f ( x) 8
Program memory output memory
compute xx
2
compute x x
Costas Busch - RPI 7
Automaton
temporary memory
Automaton
input memory
CPU
output memory
Program memory
Costas Busch - RPI 8
Different Kinds of Automata
Automata are distinguished by the temporary memory
• Finite Automata: no temporary memory
• Pushdown Automata: stack
• Turing Machines: random access memory
Costas Busch - RPI 9
Finite Automaton
temporary memory
input memory
Finite
Automaton
output memory
Example: Vending Machines
(small computing power)
Costas Busch - RPI 10
Pushdown Automaton
Stack Push, Pop
input memory
Pushdown
Automaton
output memory
Example: Compilers for Programming Languages
(medium computing power)
Costas Busch - RPI 11
Turing Machine
Random Access Memory
input memory
Turing
Machine
output memory
Examples: Any Algorithm
(highest computing power)
Costas Busch - RPI 12
Power of Automata
Finite Pushdown Turing
Automata Automata Machine
Less power More power
Solve more
computational problems
Costas Busch - RPI 13