Last session was about finite state automata (FSA).
As a special form of FSA, we introduced
deterministic finite
automata (DFA) and
non-deterministic finite automata
(NFA).
https://commons.wikimedia.org/wiki/File:ASRock_K7VT4A_Pro_Mainboard.jpg
Today’s computers are based on the von Neumann model often implemented using a x86-64 architecture.
https://commons.wikimedia.org/wiki/File:AMD_Opteron_146_Venus,_2005.jpg
At it’s core, they deal with 0 and 1.
Imagine a Modern CPU. Every bit in a machine can only be in two states (0 or 1).
Therefore, there are a finite number of possible states.
In addition, when considering the parts of a computer a CPU interacts with, there are a finite number of possible inputs from the computer’s mouse, keyboard, hard disk, different slot cards, etc.
As a result, one can conclude that a CPU can be modeled as a finite-state machine.
Aziz, Cackler, and Yung (2004)
Is a modern computer a finite-state machine?
Now, consider a computer.
Although every bit in a machine can only be in two different states (0 or 1), there are an infinite number of interactions within the computer as a whole.
It becomes exceeding difficult to model the workings of a computer within the constraints of a finite-state machine.
However, higher-level, infinite and more powerful automata would be capable of carrying out this task.
Aziz, Cackler, and Yung (2004)
The first “infinite” model of computation
was conceived by Alan Turing.
It is known as the Turing machine.
https://en.wikipedia.org/wiki/File:Turing_Machine_Model_Davey_2012.jpg
A Turing machine can be thought of
as an FSA equipped with
infinite storage.
https://en.wikipedia.org/wiki/File:Turing_Machine_Model_Davey_2012.jpg
The storage is an infinite number of one-dimensional array of cells.
A Turing machine consists of
A Turing machine \(M\) is a 7-tuple, \(( Q, \Gamma, b, \Sigma, \delta , q_0 , F)\), with
The transition function \(\delta:\)
\(\delta: (Q \setminus F) \times \Gamma \not\to Q \times \Gamma \times \{L,R\}\)
\(\delta\) specifies the next state transited from the current state, which symbol to overwrite the current symbol pointed by the head, and the next head movement and
In Turing machines, every part of the machine and its actions are finite, discrete, and distinguishable.
The difference to FSA lies in the capability of a Turing machine to change symbols on its tape thereby simulating computer execution and storage.
For this reason, it can be said that the Turing Machine has the power to model all computations that can be calculated today through modern computers.
Aziz, Cackler, and Yung (2004)
A Turing machine is an idealised model of a central processing unit (CPU) that controls all data manipulation done by a computer, with the canonical machine using sequential memory to store data.
There are two major limitations in the analogy between Turing machines and modern PCs:
Acknowledgement:
This script is inspired by Aziz, Cackler, and Yung (2004).