Title: bla
1Solomon, Feb. 2004
Racunalniki virusi in izrek o rekurziji
2 A virus copies itself
Computer viruses diagonalization and fixed
points
Dowling, W., Notices Am. Math. Soc. 1990
30, , , , /, , /, , ,
b, l, a, , , /, m, a, i,
n, (, ), ,
char t 0, , , ,
/, , /, , , b,
l, a, , , /,
m, a, i, n, (, ),
, 0 / / bla
/ main() int i
printf(char t ) for (i0
ti!0 ii1)
printf(d, , ti) printf(s,
t)
char t
4char t 0, , , ,
/, , /, , , b,
l, a, , , /,
m, a, i, n, (, ),
, 0 / / bla
/ main() int i
printf(char t ) for (i0
ti!0 ii1)
printf(d, , ti) printf(s,
t)
t represents
represent the rest !
5write and quote write and quote
6write and quote write and quote
7Recursion theorem
(Kleene 1935)
computes P about itself (n)
8Recursion theorem self-replicating
programs
9Recursion theorem
- tricky ( Odifreddi, Classical recursion theory
II ) - a little strange, mysterious ( Cutland
Computability ) - strains the intuition .. almost paradoxical (
Owings, Diagonalization - and the recursion theorem )
10Recursive vs.
circular definition
in terms of a code for its own algorithm
(Cutland)
11Recursion theorem self-replicating
programs
12V
13(No Transcript)
14( graphs of, 2D )
15(No Transcript)
16common element
17(No Transcript)
18(No Transcript)
19Enumeration
( repetitions )
computable
20(No Transcript)
21Enumeration
( repetitions )
( computable f )
Parametrization
( total s )
Cutland Computability
22(No Transcript)
23 Kleene 193?
Parametrization theorem
( total s )
( partial evaluation )
Parametrization of
( computable )
24(No Transcript)
25 self-replication, 1 step
equivalent of its image
26 self-replication, 2 step
image of its equivalent
27write and quote write and quote
self-application ofprint self-application
print self-application
self-application
copy data
represent program
replicate program
represent program
28(No Transcript)
29 1993 - online ( PS/PDF )
2004 online ( HTML chapters )
30 computable
decidable
recursive
effective
31Nezanimivo! (zanimivo del programa
pregleduje celoto)
pregleduje
samo operira indeks celote
racuna
Kako lahko del izracuna indeks celote ?
Kako lahko del vsebuje svoj indeks ?
(za izracun indeksa celote)
32Izrek o rekurziji
Dolocena preslikava f med programi ima fiksno
tocko
Pot do fiksne tocke (matrika programov,
dijagonala, ) ni odvisna od f
Programi racunajo parcijalne funkcije
Postavimo
Rekurzija/cirkularnost funkcija/program, ki
izracuna karkoli (?) o sebi ( ?(n,x) )
33dijagonala ? npr. parabola
Fokkinga Expressions that talk about
themselves The Computer Journal,
1996
34(No Transcript)
35denumeration
enumeration (repetitions)
36Computational Reflection
(refleksiven) program lahko dela
- na svojem tekstu/kodi/opisu (npr.
virus) - na stanju svojega izvajanja
(npr. optimizacija)
(execution/goal stack) - na zgodovini
svojega izvajanja (npr. loop detection)
Posebni primeri - interpreter (3-LISP,
Reflective Prolog, 3-KRS, MetaJava) - zbirnik
(boot-strapping) - delna evaluacija
37(No Transcript)
38 Racunalniki virusi in izrek o
rekurziji Teoreticna podlaga virusov je izrek
o rekurziji (Kleene), ki zagotavlja obstoj
programov, ki racunajo svoje lastnosti. Torej
obstajajo programi, ki izracunajo indeks svoje
lastne kompozicije z nekim drugim programom. Ce
ta drugi program konstruira programe iz njihovih
indeksov Piprog(i) bo kompozicija obeh
programov virus prog(n(x)), ki rekonstruira
samega sebe Predavanje bo predstavilo
obratno, hevristicno pot od vpraanja, kako
konstruirati program, ki rekonstruira samega
sebe, do izreka o rekurziji.
popravljeno
39Samo-reprezentacija kako lahko stavek/program
vsebuje predstavitev sebe?
- aritmeticna kompresija 12 ? 3 x 4
(Gödel)
- prilagoditev indeksiranja (Kripke)
- programi, ki delajo svoje kopije
t print statements, print statements.
print t, dvakrat
t do(evil), print statements,
do(evil), print statements.
Samo-reprodukcija brez samo-predstavitve
- biologija kopije virusa proizvaja celicno
okolje
- von Neumannov model