0% found this document useful (0 votes)
301 views14 pages

Understanding Turing Machines and Computability

This document discusses Turing machines as a model of computation. It provides context on foundational questions in computer science around the limits of computation. Specifically, it discusses how Turing addressed whether there are limits to what general-purpose computers and machines can compute by developing the Turing machine as a simple model of computation. The Turing machine was intended to encompass all known computational processes and determine if there are problems that cannot be solved by a machine.

Uploaded by

Brain Ewan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
301 views14 pages

Understanding Turing Machines and Computability

This document discusses Turing machines as a model of computation. It provides context on foundational questions in computer science around the limits of computation. Specifically, it discusses how Turing addressed whether there are limits to what general-purpose computers and machines can compute by developing the Turing machine as a simple model of computation. The Turing machine was intended to encompass all known computational processes and determine if there are problems that cannot be solved by a machine.

Uploaded by

Brain Ewan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

COMPUTER SCIENCE COMPUTER SCIENCE

S E D G E W I C K / W A Y N E S E D G E W I C K / W A Y N E
PA R T I I : A L G O R I T H M S , M A C H I N E S , a n d T H E O R Y PA R T I I : A L G O R I T H M S , M A C H I N E S , a n d T H E O R Y

15. Turing Machines


Computer Science

• Context

Computer 15. Turing Machines • A simple model of computation

Science An Interdisciplinary Approach


• Universality
• Computability
Section 7.4
ROBERT SEDGEWICK
K E V I N WAY N E • Implications
http://introcs.cs.princeton.edu

CS.15.A.Turing.Context

Universality and computability Context: Mathematics and logic

Principia Mathematics

Fundamental questions Mathematics. Any formal system powerful enough to express arithmetic. Peano arithmetic

• What is a general-purpose computer? Zermelo-Fraenkel set theory
.
• Are there limits on the power of digital computers? .
.
• Are there limits on the power of machines we can build? Complete. Can prove truth or falsity of any arithmetic statement.
Consistent. Cannot prove contradictions like 2 + 2 = 5.
Decidable. An algorithm exists to determine truth of every statement.
Pioneering work at Princeton in the 1930s.

Q. (Hilbert, 1900) Is mathematics complete and consistent?


A. (Gödel's Incompleteness Theorem, 1931) NO (!!!)

David Hilbert Kurt Gödel Alonzo Church Alan Turing Q. (Hilbert's Entscheidungsproblem) Is mathematics decidable?
1862 1943 1906 1978 1903 1995 1912 1954

Solved the math Provided THE answers


A. (Church 1936, Turing 1936) NO (!!)
Asked the questions Solved the decision
problem problem
3 4
COMPUTER SCIENCE COMPUTER SCIENCE
S E D G E W I C K / W A Y N E S E D G E W I C K / W A Y N E
PA R T I I : A L G O R I T H M S , M A C H I N E S , a n d T H E O R Y

Image sources

http://en.wikipedia.org/wiki/David_Hilbert#/media/File:Hilbert.jpg
http://en.wikipedia.org/wiki/Kurt_Gödel#/media/File:Kurt_gödel.jpg
http://en.wikipedia.org/wiki/Alonzo_Church#/media/File:Alonzo_Church.jpg
http://en.wikipedia.org/wiki/Alan_Turing#/media/File:Alan_Turing_photo.jpg
15. Turing Machines
• Context
• A simple model of computation
• Universality
• Computability
• Implications

CS.15.A.Turing.Context CS.15.B.Turing.Machine

Starting point Previous lecture: DFAs

Goals A DFA is an abstract machine that solves a pattern matching problem.


• Develop a model of computation that encompasses all known computational processes. • A string is specified on an input tape (no limit on its length).
• Make the model as simple as possible. • The DFA reads each character on input tape once, moving left to right.
• The DFA lights "YES" if it recognizes the string, "NO" otherwise.
Each DFA defines a set of strings (all the strings that it recognizes).
Example: A familiar computational process.

NO

1 0 1 0

3 1 4 2
Characteristics YES
7 1 8 2
• Discrete.
1 0 3 2 4 • Local.
b b a a b b a b b
• States.
7 8
Previous lecture: DFA details and example This lecture: Turing machines

A DFA is an abstract machine with a finite number of states, each labelled Y or N and A Turing machine (TM) is an abstract model of computation.
transitions between states, each labelled with a symbol. One state is the start state. • A string is specified on a tape (no limit on its length).
• Begin in the start state. • The TM reads and writes characters on the tape, moving left or right.
• Read an input symbol and move to the indicated state. • The TM lights "YES" if it recognizes the string, "NO" otherwise.
• Repeat until the last input symbol has been read. • The TM may halt, leaving the result of the computation on the tape.
• Turn on the "YES" or "NO" light according to the label on the final state.

NO
NO
a a a
Does this DFA recognize HALT
Y b N b N this string?
b YES
YES

... ...
b b a a b b a b b
9 10

This lecture: Turing Machine details and example DFAs vs TMs

A Turing Machine is an abstract machine with a finite number of states, each labeled Y, N, Similarities
H, L, or R and transitions between states, each labeled with a read/write pair of symbols. • Simple model of computation.
• Begin in the start state. • Input on tape is a finite string with symbols from a finite alphabet.
• Read an input symbol, move to the indicated state and write the indicated output. • Finite number of states.
• Move tape head left if new state is labeled L, right if it is labeled R. • State transitions determined by current state and input symbol.
• Repeat until entering a state labeled Y, N, or H ( and turn on associated light).
Differences

NO
1:0 #:1
DFAs TMs
R #:# L H HALT
• Can read input symbols from the tape. • Can read from or write onto the tape.
0:1
• Can only move tape head to the right. • Can move tape head either direction.
YES
• Tape is finite (a string). • Tape does not end (either direction).
• One step per input symbol. • No limit on number of steps.
# # # 1 0 1 1 0 0 1 1 1 # # # • Can recognize (turn on "YES" or "NO"). • Can also compute (with output on tape).

11 12
TM example 1: Binary decrementer TM example 1: Binary decrementer

Q. What happens when we try to decrement 0?

Note:
x:x self-loops are omitted. NO NO
0:1 0:1 #:#

R #:# L 1:0 H HALT R #:# L 1:0 H HALT


"Scan left until
"Scan right until reading #" reading 0 or 1"
YES YES

# # # 0
1 0 1 0 1 0 0 0 0 # # # # # # #
1 # # # # 0 0 0 0 # # #

A. Doesn't halt! TMs can have bugs, too.


Input 1 0 1 0 1 0 0 0 0
Fix to avoid infinite loop. Check for #.
Output 1 0 1 0 0 1 1 1 1
13 14

TM example 2: Binary incrementer TM example 3: Binary adder (method)

Note: This adds a 1 at the left as the To compute x + y


last step when incrementing 111...1

NO • Move right to right end of y. ... # # 1 0 1 1 + 1 0 1 0 # # ...


1:0 #:1

R #:# L H HALT • Decrement y. ... # # 1 0 1 1 + 1 0 0 1 # # ...

0:1
YES • Move left to right end of x (left of +) . ... # # 1 0 1 1 + 1 0 0 1 # # ...

# # # 1
0 0 1 0 0 1 1 1 1 # # #
• Increment x. ... # # 1 1 0 0 + 1 0 0 1 # # ...

• Continue until y = 0 is decremented. ... # 1 0 1 0 1 + 1 1 1 1 # # ...


Found + when seeking 1? Just decremented 0.

Input 1 0 1 0 0 1 1 1 1 • Clean up by erasing + and 1s. ... # 1 0 1 0 1 # # # # # # # ...


Clean up

Output 1 0 1 0 1 0 0 0 0
15 16
TM example 3: Binary adder Simulating an infinite tape with two stacks

# 1 0 1 1 + 1 0 1 0 # NO Q. How can we simulate a tape that is infinite on both ends?


0:1 Find +
A. Use two stacks, one for each end.
# 1 0 1 1 + 1 0 0 1 # Decrement y L 1:0 L HALT
private Stack<Character> left;
+:# +:+ private Stack<Character> right;
1:# Halt # # # 1 0 1 1 + 1 0 1 0 # # #
# 1 0 1 1 + 1 0 0 1 # YES private char read()
{
R #:# H if (right.isEmpty()) return '#';
else return right.pop(); "tape head" is top of right stack
# 1 1 0 0 + 1 0 0 1 # Clean Up } to simulate TM tape,
#:# need to call write()
0:1 private char write(char c)
exactly once after 1
each call on read()
... { right.push(c); } 1 move 1
Find right end R L Increment x
+ right +
private void moveRight()
#:1 { 1 1
1 0 1 0 1 + 1 1 1 1 # 1:0 if (right.isEmpty()) move
left.push('#') 0 1 0
else left.push(right.pop());
left
0 0 0 1
}
1 0 1 0 1 # # # # # # 1 1 1 0
private void moveLeft()
# # # 1 0 1 1 + 1 0 1 0 # # # { # # # #
if (left.isEmpty())
right.push('#')
empty? assume # is there
else right.push(left.pop());
}
17 18

Simulating the operation of a Turing machine COMPUTER SCIENCE


S E D G E W I C K / W A Y N E
public class TuringMachine fixes bug
{ 0:1 #:#
private int state;
private int start; R #:# L 1:0 H
0 1 2
private char[] action;
private ST<Character, Integer>[] next;
private ST<Character, Character>[] out; action[] next[] out[]
/* Stack code from previous slide */
0 1 # 0 1 #
public TM(String filename)
{ /* Fill in data structures */ } 0 R 0 0 0 1 0 0 1 #
public String simulate(String input) 1 L 1 1 2 2 1 1 0 #
{
state = start; 2 H 2 2 2 2 2 0 1 #
for (int i = input.length()-1; i >= 0; i--) entries in gray are implicit in graphical representation
right.push(input.charAt(i));
while (action[state] != 'H')
{ % more dec.txt
char c = read(); # states, alphabet, start 3 01# 0
write(out[state].get(c)); R 0 0 1 0 1 #
state = next[state].get(c); type, transitions, output
L 1 2 2 1 0 #
if (action[state] == 'R') moveRight(); for each state
if (action[state] == 'L') moveLeft(); H 2 2 2 0 1 #
} % java TM dec.txt
return action[state]; 000111
} 000110
public static void main(String[] args) 010000
{ /* Similar to DFA's main() */ } 001111
} 000000
111111

19 CS.15.B.Turing.Machine
COMPUTER SCIENCE Representing a Turing machine
S E D G E W I C K / W A Y N E
PA R T I I : A L G O R I T H M S , M A C H I N E S , a n d T H E O R Y
Turing's key insight. A TM is nothing more than a finite sequence of symbols.

dec.txt
decrementer TM
0:1 #:# 3 01# 0
R 0 0 1 0 1 #
R #:# L 1:0 H L 1 2 2 1 0 #
0 1 2 H 2 2 2 0 1 #

15. Turing Machines


Implication. Can put a TM and its input on a TM tape.
• Context
• A simple model of computation 1 1 0 0 0 3 0 1 # 0 R 0 0 1 0 1 # L 1 2 1 1 0 # H 2 2 2 0 1 #

• Universality
input Turing machine
• Computability
• Implications Profound implication. We can use a TM to simulate the operation of any TM.

CS.15.C.Turing.Universality 22

Universal Turing machine (UTM) Implementing a universal Turing machine

NO
Universal Turing machine. A TM that takes as Java simulator gives a roadmap
input any TM and input for that TM on a TM tape. UTM HALT

• No need for a constructor as in Java because


YES

everything is already on the tape.


A 24-state UTM
• Simulating the infinite tape is a bit easier
... # # # 1 1 0 0 0 3 0 1 # 0 R 0 0 1

than in Java because TM has an infinite tape.


input to decrementer TM decrementer TM
• Critical part of the calculation is to update
state as indicated.
Result. Whatever would happen if that TM were to
NO

run with that input (could loop or end in Y, N, or H). UTM HALT

YES

... # # # 1 0 1 1 1 # # #

Want to see the details or build your own TM?


result that decrementer TM would produce
Use the booksite's TM development environment.

Turing. Simulating a TM is a simple computational task, so there exists a TM to do it: A UTM.

Easier for us to think about. Implement Java simulator as a TM. Warning. TM development may be addictive. Amazed that it's only 24 states?
The record is 4 states, 6 symbols.
23 24
Universality Conway's game of life

UTM: A simple and universal model of computation. A cellular automaton


• Cells live and die in an infinite square grid.
Definition. A task is computable if a Turing machine exists that computes it. • Time proceeds in discrete steps.

Theorem (Turing, 1936). It is possible to invent a single


NO
Survival. Each cell lives or dies depending on its 8 neighbors:
UTM HALT

machine which can be used to do any computable task. YES


• Too few neighbors alive? (0 or 1) Die of loneliness.
John Horton Conway
... ...
• Number of living neighbors just right (2 or 3) Survive to next generation.
Profound implications • Too many neighbors alive? (more than 3) Die of overcrowding.
• Any machine that can simulate a TM can simulate a universal Turing machine (UTM).
Birth. Cell born when it has exactly 3 living neighbors.
• Any machine that can simulate a TM can do any computable task.
• Don't need separate devices for solving scientific problems, playing music, email, . . .
0 1 1 1 0 0
0 1 1 2 1 0
1 3 5 3 2 0
1 1 3 2 2 0
1 2 3 2 1 0
0 0 0 0 0 0

time t living neighbors time t+1


25 26

Conway's Game of Life A complex initial configuration for the game of life

Lesson. Simple rules can lead to complicated behavior Q. What happens with this starting configuration?

Example 1. Glider

Example 2. Glider gun (generates gliders)

Example 3. Glider gun breeder (generates glider guns)

A. Anything we can compute!


Note. YOU can write a program for the game of life (might have been an assignment). (It is a UTM).
27 28
A profound connection to the real world Evidence in favor of the Church-Turing thesis

Church-Turing thesis. Turing machines can do anything that can be described by any Evidence. Many, many models of computation have turned out to be equivalent (universal).
physically harnessable process of this universe: All computational devices are equivalent.
model of computation description

enhanced Turing machines multiple heads, multiple tapes, 2D tape, nondeterminism


Remarks New model of computation or new physical process? untyped lambda calculus method to define and manipulate functions
• A thesis, not a theorem. • Use simulation to prove equivalence. recursive functions functions dealing with computation on integers
• Not subject to proof. • Example: TOY simulator in Java. unrestricted grammars iterative string replacement rules used by linguists
• Is subject to falsification. • Example: Java compiler in TOY. extended Lindenmayer systems parallel string replacement rules that model plant growth
programming languages Java, C, C++, Perl, Python, PHP, Lisp, PostScript, Excel
random access machines registers plus main memory, e.g., TOY, Pentium

= cellular automata cells which change state based on local interactions


Implications
quantum computer compute using superposition of quantum states
• No need to seek more powerful machines or languages. DNA computer compute using biological operations on DNA
NO

• Enables rigorous study of computation (in this universe).


=
HALT

YES
PCP systems string matching puzzles (stay tuned)

... ...

8 decades without a counterexample, and counting.


29 30

Example of a universal model: Extended Lindenmayer systems for synthetic plants COMPUTER SCIENCE
S E D G E W I C K / W A Y N E

Image sources

http://astronomy.swin.edu.au/~pbourke/modelling/plants

31 CS.15.C.Turing.Universality
COMPUTER SCIENCE Post's correspondence problem (PCP)
S E D G E W I C K / W A Y N E
PA R T I I : A L G O R I T H M S , M A C H I N E S , a n d T H E O R Y
PCP. A family of puzzles, each based on a set of cards.
• N types of cards.
• No limit on the number of cards of each type.
• Each card has a top string and bottom string.
Does there exist an arrangement of cards with matching top and bottom strings?

15. Turing Machines


• Context
BAB A AB BA
• A simple model of computation Example 1 (N = 4).
A ABA B B
• Universality
0 1 2 3
• Computability
• Implications A BA BAB AB A
Solution 1 (easy): YES.
ABA B A B ABA
CS.15.D.Turing.Computability 1 3 0 2 1 34

Post's correspondence problem (PCP) Post's correspondence problem (PCP)

PCP. A family of puzzles, each based on a set of cards. PCP. A family of puzzles, each based on a set of cards.
• N types of cards. • N types of cards.
• No limit on the number of cards of each type. • No limit on the number of cards of each type.
• Each card has a top string and bottom string. • Each card has a top string and bottom string.
Does there exist an arrangement of cards with matching top and bottom strings? Does there exist an arrangement of cards with matching top and bottom strings?

Example 3 (created by Andrew Appel).

BAB A AB BA S[ X BAB 11A 1 [A ] [ B1 B] [1A]E


Example 2 (N = 4).
A BAB B A S[11111X][ 1X A A1 1 [B ] [ 1B A] E
0 1 2 3 0 1 2 3 4 5 6 7 8 9 10

Solution 2 (easy): NO. No way to match even the first character! Challenge for the bored: Find a solution that starts with a card of type 0.

35 36
Post's correspondence problem (PCP) Another impossible problem

PCP. A family of puzzles, each based on a set of cards. Halting problem. Write a Java program that reads in code for a Java static method f() 

• N types of cards. and an input x, and decides whether or not f(x) results in an infinite loop.
• No limit on the number of cards of each type.
• Each card has a top string and bottom string.
Does there exist an arrangement of cards with matching top and bottom strings? Example 1 (easy). Example 2 (difficulty unknown).
public void f(int x) public void f(int x)
{ {
while (x != 1) while (x != 1)
{ { Involves Collatz conjecture
(see Recursion lecture)
... if (x % 2 == 0) x = x / 2; if (x % 2 == 0) x = x / 2;
else x = 2*x + 1; else x = 3*x + 1;
} }
} }
0 1 2 3 4 N

f(7): 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
Halts only if x is a positive power of 2 f(-17): -17 -50 -25 -74 -37 -110 -55 -164 -82 -41 -122 ... -17 ...
A reasonable idea. Write a program to take N card types as input and solve PCP.

A surprising fact. It is not possible to write such a program. Next. A proof that it is not possible to write such a program.

37 38

Undecidability of the halting problem Warmup: self-referential statements

Definition. A yes-no problem is undecidable if no Turing machine exists to solve it. Liar paradox (dates back to ancient Greek philosophers).
(A problem is computable if a Turing machine does exist that solves it.) • Divide all statements into two categories: true and false.
• Consider the statement "This statement is false."
• Is it true? If so, then it is false, a contradiction.
• Is it false? If so, then it is true, a contradiction.
Theorem (Turing, 1936). The halting problem is undecidable.
true false

2+2=4 2 + 2 = 99
The earth is round. The earth is flat.
Source of the difficulty: Self-reference. Starfish have no brains. Earthworms have 3 hearts.
Venus rotates clockwise. Saturn rotates clockwise.
Profound implications ... ...
• There exists a problem that no Turing machine can solve. This statement is false.✗ This statement is false. ✗
• There exists a problem that no computer can solve.
• There exist many problems that no computer can solve (stay tuned).
Logical conclusion. Cannot label all statements as true or false.
39 40
Proof of the undecidability of the halting problem Proof of the undecidability of the halting problem

Theorem (Turing, 1936). The halting problem is undecidable. Theorem (Turing, 1936). The halting problem is undecidable.

Proof outline. Proof. Solution to the problem


• Assume the existence of a function halt(f, x) that solves the problem. • Assume the existence of a function halt(f, x) public boolean halt(String f, String x)

{
that solves the problem. if ( /* f(x) halts */ ) return true;
public boolean halt(String f, String x)
 else return false;
{ • Create a function strange(f) that goes into an }
By universality, may as well use Java.
if ( /* something terribly clever */ ) return true;
(If this exists, we could simulate it on a TM.)
infinite loop if f(f) halts and halts otherwise.
else return false;
} • Call strange() with itself as argument. A client
public void strange(String f)
• If strange(strange) halts, then {
• Arguments: A function f and input x, encoded as strings. strange(strange) goes into an infinite loop. if (halt(f, f))
while (true) { } // infinite loop
• Return value: true if f(x) halts and false if f(x) does not halt. • If strange(strange) does not halt, then }

• halt(f, x) always halts. strange(strange) halts.


• Proof idea: Reductio ad absurdum: if any logical argument based on an • Reductio ad absurdum. A contradiction
halts?
assumption leads to an absurd statement, then the assumption is false. strange(strange)
• halt(f, x) cannot exist. does not halt?

41 42

COMPUTER SCIENCE COMPUTER SCIENCE


S E D G E W I C K / W A Y N E S E D G E W I C K / W A Y N E
PA R T I I : A L G O R I T H M S , M A C H I N E S , a n d T H E O R Y

15. Turing Machines


• Context
• A simple model of computation
• Universality
• Computability
• Implications

CS.15.D.Turing.Computability CS.15.E.Turing.Implications
Implications of undecidability Implications for programming systems

Primary implication. If you know that a problem is undecidable... Q. Why is debugging difficult?
A. All of the following are undecidable.
...don't try to solve it!
Hey, Alice. We came up with a
great idea at our hackathon.
We're going for startup funding. Halting problem. Give a function f, does it halt on a given input x?
What's the idea? Totality problem. Give a function f, does it halt on every input x?
No-input halting problem. Give a function f with no input, does it halt?
An app that you can use to
make sure that any app you Program equivalence. Do two functions f and g always return same value?
download won't hang your phone! Uninitialized variables. Is the variable x initialized before it's used? LE
AB
Dead-code elimination. Does this statement ever get executed? C ID
DE
Umm. I think that's UN
undecidable.
Prove each by reduction from the halting problem: A solution would solve the halting problem.
?
Will your app
work on itself ? Q. Why are program development environments complicated?
??? A. They are programs that manipulate programs.
45 46

Another undecidable problem Another undecidable problem

The Entscheidungsproblem (Hilbert, 1928) "Decision problem"

• Given a first-order logic with a finite number of additional axioms.


E
• Is the statement provable from the axioms using the rules of logic? BL
DA
E CI
U ND David Hilbert
1862 1943

Lambda calculus E
BL
• Formulated by Church in the 1930s to address the Entscheidungsproblem. DA
E CI
U ND
• Also the basis of modern functional languages.
Alonso Church
1903 1995

Theorem (Church and Turing, 1936). The Entscheidungsproblem is undecidable. Theorem (Post, 1946). Post's correspondence problem is undecidable.

47 48
Examples of undecidable problems from computational mathematics Examples of undecidable problems from computer science

Hilbert's 10th problem Ex. 1 ( , , )= +


Optimal data compression
• Given a multivariate polynomial f (x, y, z, ...). YES ( , , )=
• Find the shortest program to produce a given string.
• Does f have integral roots ? (Do there exist
integers x, y, z, such that f (x, y, z, ...) = 0 ? ) Ex. 2 ( , )= + NO • Find the shortest program to produce a given picture.
E
BL
I DA
EC LE
D AB
UN C ID
DE
UN produced by a 34-line Java program

Definite integration Private Sub AutoOpen()



On Error Resume Next 

cos( ) cos( ) If System.PrivateProfileString("", CURRENT_USER\Software

• Given a rational function f (x ) composed of Ex. 1 YES = Virus identification \Microsoft\Office\9.0\Word\Security",


+ + "Level") <> "" Then


CommandBars("Macro").Controls("Security...").Enabled = False
polynomial and trigonometric functions. • Is this code equivalent to this known virus?
. . .
For oo = 1 To AddyBook.AddressEntries.Count
Peep = AddyBook.AddressEntries(x)
BreakUmOffASlice.Recipients.Add Peep
x = x + 1
E
BL
If x > 50 Then oo = AddyBook.AddressEntries.Count
• Does ( ) exist? DA
cos( ) • Does this code contain a virus?
Next oo

CI
. . .
E Ex. 2 NO E BreakUmOffASlice.Subject = "Important Message From " &
ND BL Application.UserName
U DA
CI
BreakUmOffASlice.Body = "Here is that document you asked for
E ... don't show anyone else ;-)"

U ND . . .

49 Melissa virus (1999) 50

Turing's key ideas Alan Turing: the father of computer science

Turing's paper in the Proceedings of the London Mathematical Society



"On Computable Numbers, With an Application to the Entscheidungsproblem" It was not only a matter of abstract mathematics, not only a play of
was one of the most impactful scientific papers of the 20th century. symbols, for it involved thinking about what people did in the physical
world…. It was a play of imagination like that of Einstein or von
Alan Turing Neumann, doubting the axioms rather than measuring effects…. What
The Turing machine. A formal model of computation. 1912 1954
he had done was to combine such a naïve mechanistic picture of the
Equivalence of programs and data. Encode both as strings and compute with both. mind with the precise logic of pure mathematics. His machines – soon

Universality. Concept of general-purpose programmable computers. — John Hodges, in Alan Turing, the Enigma

Church-Turing thesis. If it is computable at all, it is computable with a Turing machine.

Computability. There exist inherent limits to computation. NO

UTM
=
HALT

YES

Turing's paper was published in 1936, ten years before Eckert and Mauchly worked on ENIAC (!) ... ...

A Universal Turing Machine

John von Neumann read the paper... Stay tuned


A Google data center
51 52
COMPUTER SCIENCE COMPUTER SCIENCE
S E D G E W I C K / W A Y N E S E D G E W I C K / W A Y N E
PA R T I I : A L G O R I T H M S , M A C H I N E S , a n d T H E O R Y

Computer Science
Computer 15. Turing Machines
Science An Interdisciplinary Approach

ROBERT SEDGEWICK
K E V I N WAY N E
Section 7.4
http://introcs.cs.princeton.edu

CS.15.E.Turing.Implications

You might also like