Synopsis On Turing Machine
Synopsis On Turing Machine
Synopsis On Turing Machine
On
TURING MACHINE
1
The Turing Machine
Introduction
We have studied two types of languages from the Chomsky hierarchy: regular languages and
context-free languages. These languages can describe many practically important systems and
so they are heavily used in practice. However, of limited capability there are many languages
that they cannot process. The languages in Chomsky hierarchy, the phrase structure languages
(also called Type 0 languages), and the machines that can process them are known as Turing
machines. Turing machines were conceived of by the English mathematician Alan Turing as a
model of human "computation". Later Alonzo Church conjectured that any computation done
by humans or computers can be carried out by some Turing machine. This conjecture is known
as Church's thesis and today it is generally accepted as true. Computers we use today are as
powerful as Turing machines except that computers have finite memory while Turing machines
have infinite memory.
Definition
Conceptually a Turing machine, consists of a finite control and a tape. At any time it is in one
of the finite number of states. The tape has the left end but it extends infinitely to the right. It
is also divided into squares and a symbol can be written in each square. However, unlike finite
automata, its head is a read-write head and it can move left, right or stay at the same square
after a read or write.
Given a string of symbols on the tape, a Turing machine starts at the initial state. At any state
it reads the symbol under the head, either erases it or replaces it with a symbol (possibly the
same symbol). It then moves the head to left or right or does not move it and goes to the next
state which may be the same as the current state. One of its states is the halt state and when the
Turing machine goes into the halt state, it stops its operation.
2
In context to real machines
There are a number of ways to explain why Turing machines are useful models of real
computers
1- Anything a real computer can compute, a Turing machine can also compute. For example:
"A Turing machine can simulate any type of subroutine found in programming languages, the
limitations of Turing machines will also apply to real computers.
2- The difference lies only with the ability of a Turing machine to manipulate an unbounded
amount of data. However, given a finite amount of time, a Turing machine (like a real machine)
can only manipulate a finite amount of data.
3- A Turing machine and areal machine both can have its storage space enlarged as needed,
by acquiring more disks or other storage media
3
4