Theory of Computation (Fall 2014): Universal Programs
-
Upload
vladimir-kulyukin -
Category
Science
-
view
102 -
download
0
Transcript of Theory of Computation (Fall 2014): Universal Programs
![Page 1: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/1.jpg)
Theory of Computation
Universal Programs
Vladimir KulyukinDepartment of Computer Science
Utah State University
www.vkedco.blogspot.com
![Page 2: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/2.jpg)
A movement is accomplished in six stagesAnd the seventh brings return
Syd Barrett, Chapter 24, The Piper at the Gates of Dawn
![Page 3: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/3.jpg)
Outline● Introduction● Developing Universal Programs in Six Stages
Universality Theorem
Stage 01: Source Code Extraction, Encoding Program State, Initializing In-struction Counter
Stage 02: Establishing Termination Condition
Stage 03: Decoding Next Instruction
Stage 04: Determining Next Instruction's Type
Stage 05: Execution of Conditional Dispatch
Stage 06: Execution of No-Op, Subtraction, Addition
Return
![Page 4: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/4.jpg)
Introduction
![Page 5: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/5.jpg)
Review: Variable & Label Orderings
● The variables are ordered as follows:Y X1 Z1 X2 Z2 X3 Z3 …
● The labels are ordered as follows:A1 B1 C1 D1 E1 A2 B2 C2 D2 E2 A3 …
● #(Y)=1, #(X1)=2, #(X3)=6, #(Z2)=5● #(B1)=2, #(A2)=6, #(C2)=8
![Page 6: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/6.jpg)
Why Universal Programs are Called Universal
Every natural number in the universe is a program awaiting its computer. The program runs if and when its computer appears. Universal programs are one example of such computers. They are called universal, because they turn every natural number into a running program.
![Page 7: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/7.jpg)
Back to The Big Picture
GÖDEL Coder
GÖDEL Decoder
L Program Number Universal Program
Number
???
GÖDEL Coder = CompilerGÖDEL Decoder = Reverse CompilerUniversal Program = Operating System/VM/Interpreter
![Page 8: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/8.jpg)
Developing Universal Programsin Six Stages
![Page 9: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/9.jpg)
Theorem 3.1 (Ch. 4)
.computablepartially is
,,...,function the,0each For 1)( yxxΦn n
n
What does this theorem really say? y is a natural number; y is a compiled program; x
1, …, x
n are inputs to program
compiled as y; the function Φ takes y, runs it on the values of x
1, …, x
n and returns the result iff there is a computation,
which is why Φ is partially computable.
![Page 10: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/10.jpg)
Proof 3.1
11)( ,,...,
:function following thecomputes
that construct can we,0each for
how, show will we3.1, Theorem prove To
nnn
n
XXXY
U n
![Page 11: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/11.jpg)
Stage 01
Source Code Extraction, Encoding Program State, Initializing Instruction Counter
![Page 12: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/12.jpg)
Program State & Instruction Counter
executed. be n toinstructio sprogram' theofnumber thebe Let
state. theencodest number tha-G thebeLet
.63731,0,2,00,1,0,2,0 :number-G
.0,1,0,2,0 :State
example,For odd.
are variablesinternal theof positions theand 1 is Yposition The
even. arenumber -G in the ablesinput vari theof positions The
number.-G a as encoded is program theof state The
2
2211
K
S
ZXZXY
![Page 13: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/13.jpg)
Program State
. of value theencodes then odd, is and 1 if
; of value theencodes then even, is and 1 if
; of value theencodes always
: thatso variableprogram a
of value theencodes Each .,...,, state program the
let example,For number.-G a is state program that theis idea The
2/1
2/
1
21
ii
ii
im
Zvii
Xvii
Yv
vvvvS
![Page 14: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/14.jpg)
Variable Values Encoded in Program State
on. so and , of value theis
; of value theis
; of value theis
; of value theis
; of value theis
; of value theis
; of value theis
Then . S Suppose
32/177
32/66
22/155
22/44
12/133
12/22
1
1
ZZv
XXv
ZZv
XXv
ZZv
XXv
Yv
,..., vv m
![Page 15: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/15.jpg)
Un Construction: Stage 01
1. Extract the source code2. Initialize the state3. Initialize the instruction counter
![Page 16: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/16.jpg)
Un Construction: Stage01
counter.n instructio theInitialize 3. // 1
well.asit rename could But we either. variable,//
legal anot is counter.n instructio theis //
state. program theInitialize 2. //
to.had weifsubscript eappropriat somewith into//
it rename could We.meaningful more isit But variable.//
legal anot ly technicalis S program. theof state initial theis S //
code. source eExtract th 1. // 1
number. program a is and ablesinput vari theare//
,..., where,,,..., computes program This//
12
1
1
111
K
L
KK
pS
Z
L
XZ
X
XXXXXY
n
i
Xi
n
n
nnnn
i
![Page 17: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/17.jpg)
Stage 02
Establishing Termination Condition
![Page 18: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/18.jpg)
Un Construction: Stage 02
• The next thing that Un must do is check for the termination condition
• So, when should Un stop running program y?• The termination condition occurs when the instruction
counter is I+1 or 0, where I=Lt(Z) is the number of instructions in the source code compiled into natural number Z
• The function Lt(Z) computes the length of natural number Z• The instruction counter is 0 when the program is dispatched to
a label that does not exist
![Page 19: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/19.jpg)
Review: Access Function for Gödel Numbers
.3;4;2
then,3,4,2 if example,For recursive. primitive is
,1 ,function access The .,...,Let
321
1
xxx
x
niaxaax iin
![Page 20: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/20.jpg)
Compiled Program's Source Code as G-Number
.number -Gin primeth - theofpower thealso
isIt n.instructioth - theofnumber theis 2)
;in nsinstructio
primitive ofnumber thei.e., length, s' is )1
: thatknow Then we . program- some
of source compiled theis number,-G a is which , If
ZK
KZ
L
PZLt
PL
Z
K
![Page 21: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/21.jpg)
Un Construction: Stage 02
label. EXIT usual theis //
subscript.//
eappropriatan with Za usingby renamed//
becan but variable, legal anot is that Note//
label. CONTINUE theas of thought becan //
GOTO 01 IF
E
L C
C
EKZLtKC
![Page 22: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/22.jpg)
Un So Far
Terminate 4. // E GOTO 1 0 IF C
counter.n instructio theInitialize 3. // 1
state. program theInitialize 2. //
code. source eExtract th 1. // 1
12
1
Z LtK K
K
pS
XZn
i
Xi
n
i
![Page 23: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/23.jpg)
Stage 03
Decoding Next Instruction
![Page 24: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/24.jpg)
Un Construction: Stage 03
● The next thing that Un must do is decode the next instruction to execute (decode simply means to extract the source code)
● The source code contains only primitive L instructions: all macros have been expanded properly and variables renamed
● Recall that an instruction is defined by three components: ● the label ● the instruction type● the variable
![Page 25: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/25.jpg)
Un Construction: Stage 03
.1#
n;instructio of type theis
;#
where,,,Z n,compilatio of definitionby Then,
power); (primenumber sn'instructiocurrent theis
Vc
b
La
cba
Z
K
K
![Page 26: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/26.jpg)
Un Construction: Stage 03
ordering.
variablein the 1number variableis s,other wordIn
.1#
;1#
;,
:follows asn instructio in the
used variable theand n typeinstructio eextract th nowcan We
UrV
UrV
VUrc
cbZrU K
![Page 27: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/27.jpg)
Un Construction: Part 03
. of value theis i.e., where
, |such that prime a is ? isWhat
: of value thedetermine
nowcan .We...,..., that Recall
1
11
111
VvSv
Spppp
V
ppvvS
Ur
vUrUr
vm
vm
m
![Page 28: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/28.jpg)
Example 01
.63|3 because ,2 s,other wordIn
.2 then , of i.e. , of value theis If
.3 is want weprime The . Thus,
...)., ,( ordering variablein the ofnumber theis
which 2, 1 and 1#1
Then .1,, that also Suppose
.63731,0,2,0 that Suppose
21
211
211
111
2
X
SSvXVv
ppXV
ZXYX
UrVcUr
bcbU
S
Ur
Ur
![Page 29: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/29.jpg)
Example 02
.| then ,0 if that Observe
.63|5but ,63|5 because ,0 So,
.0.Then of i.e. , of value thebe Let
.5 prime ingcorrespond The . Thus,
....) , , ,( ordering leour variabin ofnumber the
is which 3, 1 So .1#2Then
.2,Let .63731,0,2,0Let
11
01
311
311
111
2
SpSv
Z
SSvZVv
ppZV
ZXYZ
UrVcUr
bUS
UrUr
Ur
Ur
![Page 30: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/30.jpg)
Example 03
.1 So, .1
.7
. so ,...) , , , ,( ordering variable
ourin of # theis which 4, 1 So
.1#3Then .3,Let
.63731,0,2,0 that Assume
241
41
2211
2
2
XSS
pp
XVXZXY
XUr
VcUrbU
S
Ur
Ur
![Page 31: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/31.jpg)
Un Construction: Stage 03
1)(
th prime. 1)( theis //
ninstructioth - theofpart right the;, //
ninstructioth - ;,, //
Ur
K
K
pP
UrP
ZrU
KcbU
KcbaZI
![Page 32: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/32.jpg)
Un So Far
variablesn'instructioth -K of valuehe // t
ispower whoseingcorrespond prime theis P //
n instructioth -K theis //
Conditionn Terminatio // GOTO 1 0 IF [C]
countern instructio theisK // 1
state sprogram' theis S //
code source theis // Z1
1)(
12
1
Ur
KK
n
i
Xi
n
pP
ZZrU
EZLtK K
K
pS
XZ
i
![Page 33: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/33.jpg)
Stage 04
Determining Next Instruction's Type
![Page 34: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/34.jpg)
Un Construction: Part 04
● The next thing that Un must do is to determine the type of the next instruction to be executed
● The following labels are used:● N – stands for no-op (do nothing)● A – stands for addition● M – stands for subtraction (minus)● Conditional dispatch needs to go to a specific label
![Page 35: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/35.jpg)
Un Construction: Stage 04
anything. do tohavenot do We. typeof is executed//
be n toinstructio the,0)( if s,other wordIn //
GOTO 0)( IF
. ; ;,,//
VV
Ul
NUl
bUlb,cZrUcbaZI KK
![Page 36: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/36.jpg)
Un Construction: Stage 04
label.addition //
theodispatch t We.1 typeof is executed//
be n toinstructio the,1)( if s,other wordIn //
GOTO 1)( IF
.;,;,,//
VV
Ul
AUl
bUlcbZrUcbaZI KK
![Page 37: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/37.jpg)
Un Construction: Stage 04
• Un now has to check if the instruction to execute is subtraction
• However, if we know that the value of the variable is 0, we do not need to subtract 1 from it, because it will remain 0 anyway
• So, before we dispatch to subtraction, we check if the value of the variable is 0; if it is, we do nothing
![Page 38: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/38.jpg)
Program State & Variable Values
0.an greater th are powers their because 63, of factors
theare 7 and 3Only .0,2,0,17363 example,For
. offactor anot is ,0 if because trueis This
.0 ifonly and if |Then
number.-G a is that Recall state. program a be Let
2
SpS
SSp
SS
ii
ii
![Page 39: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/39.jpg)
Un Construction: Stage 04
NSP
SP
GOTO | IF
nothing. do We0. isn instructio in the//
variable theof value the,| If//
![Page 40: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/40.jpg)
Un Construction: Stage 04
MUl
Ul
GOTO 2)( IF
label.n subtractio theodispatch t // We
n.subtractio is n typeinstructio the,2)( If//
![Page 41: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/41.jpg)
Un So Far
MINUS. togo ,1 If // M GOTO 2)( IF
NOTHING. togo ,0 If // N GOTO | IF
ADD. togo ,1 IfA // GOTO 1)( IF
OP.-NO togo , If // N GOTO 0)( IF
e.th variabl-1 toingcorrespond prime Get the //
n.instructioth -K of ,Get //
inationCheck term // E GOTO 01 IF C
counter.n instructio Initialize // 1
state. program initial theEncode //
number. source Get the // 1
1)(
12
1
V-V Ul
V SP
VV Ul
VV Ul
cpP
cbZrU
KZLtK
K
pS
XZ
Ur
K
n
i
Xi
n
i
![Page 42: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/42.jpg)
Stage 05
Execution of Conditional Dispatch
![Page 43: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/43.jpg)
Compilation of Conditional Dispatch
.2#then
, GOTO 0 IF form theof isn instructioth - IF
Lb
LVK
![Page 44: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/44.jpg)
.2# and GOTO 0 IF
form theof isn instructio
current then the,| and 2 IF
.,;,,
UlLLV
SPUl
cbZrUcbaZI KK
Un Construction: Stage 05
![Page 45: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/45.jpg)
Un Construction: Stage 05
.22 ly,equivalent
or, ,2such that ,,,n instructio
earliest for thelook toneed weThus, .2#
So .2#2,
Ulba
bacbaZ
bL
LUlbcblUl
i
iiiii
![Page 46: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/46.jpg)
Un Construction: Stage 05
0. becomecan wherecode in the placeonly theis This //
.0 label,such no is thereif that Note//
GOTO
2min
.,;,, //
)(
K
K
C
UlZlK
cbZrUcbaZI
iZLti
KK
![Page 47: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/47.jpg)
Un So Far
C
UlZlK
Ul
SP
Ul
Ul
pP
ZrU
KZLtK
K
pS
XZ
iZLti
Ur
K
n
i
Xi
n
i
GOTO
2min
M GOTO 2)( IF
N GOTO | IF
A GOTO 1)( IF
N GOTO 0)( IF
E GOTO 01 IF C
1
1
)(
1)(
12
1
![Page 48: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/48.jpg)
Stage 06
Execution of NO-OP, Subtraction, & Addition
![Page 49: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/49.jpg)
Un Construction: Stage 06
● All there is left to do is to code what Un must do at each of the following labels:●[N] – do no-op●[M] – subtract●[A] – add
![Page 50: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/50.jpg)
Un Construction: Stage 06
C.back Go // GOTO
counter.n instructioIncrement // 1
Nothing Doing//
C
KKN
![Page 51: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/51.jpg)
Un Construction: Stage 06
.1,0,1,073213
63 isexecuted, isn subtractio e//after th
state, new Then the .3 Thus, sequence. leour variab//in
variablesecond theis 1 .111# //Suppose
.1,0,2,063 example,//For
nSubtractio //
2
1
P
S
pP
XXXZ
S
P
SSM
![Page 52: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/52.jpg)
Un Construction: Stage 06
.7632,0,2,0'
state new .Then the Thus, sequence.our in
eth variabl-4 theis 2 .122# Suppose
. Suppose .1,0,2,063 suppose example,For
Addition //
4
PSS
pP
XXXZ
iKS
PSSA
i
![Page 53: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/53.jpg)
Un Construction Completed
1
)(
1)(
12
1
GOTO
1
GOTO
/
GOTO
2min
M GOTO 2)( IF
N GOTO | IF
A GOTO 1)( IF
N GOTO 0)( IF
E GOTO 01 IF C
1
1
SYE
C
KKN
PSSA
N
PSSM
C
UlZlK
Ul
SP
Ul
Ul
pP
ZrU
KZLtK
K
pS
XZ
iZLti
Ur
K
Xn
ii
n
i
![Page 54: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/54.jpg)
Return
![Page 55: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/55.jpg)
What We Just Proved
.computablepartially is ,,...,function the
,0each For :Theorem)ity (Universal 3.1 Theorem
1)( yxxΦ
n
nn
![Page 56: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/56.jpg)
Back to The Big Picture
GÖDEL Coder
GÖDEL Decoder
L Program Number Universal Program
Number
???
GÖDEL Coder = CompilerGÖDEL Decoder = Reverse CompilerUniversal Program = Operating System/VM/Interpreter
Universality Theorem
![Page 57: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/57.jpg)
A Practical Interpretation of Universality Theorem
● If you look at the proof of Theorem 3.1 (Ch. 4) as a programmer or a computer scientist, you notice that we have constructed an interpreter (a mini-OS) for L in L itself
● It is feasible to write operating systems that can interpret/execute any program in a specific assembly dialect
● It is also feasible to write ● Java interpreter/compiler in Java● Python interpreter/compiler in Python● Lisp interpreter/compiler in Lisp● C interpreter/compiler in C
![Page 58: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/58.jpg)
Stream, Infinite & Universal
0,run can
,...,,...,,
1
121
nUU
UUUU
nn
nn
![Page 59: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/59.jpg)
Program Simulation● Suppose a universal program runs a program on some inputs● We can expect two mutually exclusive outcomes:–The program terminates (halts) after some finite number of steps and produces an output (a number);–The program does not terminate at all (e.g., it has an infinite loop)● In many situations, we would like to know if a program terminates within a given number of steps without running the program● Enter Simulation which we will look at in the next lecture
![Page 60: Theory of Computation (Fall 2014): Universal Programs](https://reader034.fdocuments.in/reader034/viewer/2022052507/55871d02d8b42a8b0b8b45e4/html5/thumbnails/60.jpg)
References
● Ch. 4, Computability, Complexity, and Languages, 2nd Edition, by Davis, Weyuker, Sigal
● http://en.wikipedia.org/wiki/Kurt_Gödel