Øse ABONNENTNET SNOOP

Original: http://www.lel.ed.ac.uk/~gpullum/loopsnoop.html

Et bevis på, at Standsning Problemet er uafgørbar

Geoffrey K. Pullum
(Skole for Filosofi, Psykologi og sprog Sciences, University of Edinburgh)
 

Ingen generelle procedure for bug kontrol vil gøre.
Nu vil jeg ikke bare hævde, at, vil jeg bevise det for dig.
Jeg vil bevise, at selvom du kan arbejde till you drop,
du kan ikke fortælle, om beregning vil stoppe.
 
For forestille vi har en procedure kaldet P
at for specificeret indgang tillader dig at se
uanset om specificeret kildekode, med alle sine fejl,
definerer en rutine, som til sidst standser.
 
Du foder i dit program, med egnede data,
og P kommer til at arbejde, og lidt senere
(i begrænset beregne tid) korrekt udleder
uanset om uendelig looping problem opstår.
 
Hvis der vil være nogen looping, så P udskrives “Godt.”
Det betyder arbejde med dette input vil standse, som det skal.
Men hvis den opdager en ustoppelig loop,
så P-rapporter “Bad!” – hvilket betyder at du er i suppen.
 
Tja, sandheden er, at P umuligt kan være,
fordi hvis du skrev det og gav det til mig,
Jeg kunne bruge det til at oprette en logisk binde
der ville smadre din grund, og scramble dit sind.
 
Her er det trick, som jeg vil bruge – og det er simpelt at gøre.
Jeg vil definere en procedure, som jeg vil kalde Q,
der vil bruge P forudsigelser om at standse succes
at opildne en frygtelig logisk rod.
 
For et bestemt program, siger A, en forsyninger,
det første skridt i dette program kaldet Q jeg udtænke
er at finde ud af P, hvad der er det rigtige at sige
af looping opførsel af en køre på A.
 
Hvis P svar er “Bad!”, Vil Q pludselig stopper.
Men ellers vil Q gå tilbage til toppen,
og starte igen, looping uendeligt tilbage,
indtil universet dør og vender frosne og sort.
 
Og dette program kaldet Q ville ikke bo på hylden;
Jeg vil bede den om at forudsige sin køre på sig selv.
Når det lyder sin egen kildekode, bare hvad vil det gøre?
Hvad er looping adfærd Q køre på Q?
 
Hvis P advarer om uendelige løkker, vil Q quit;
endnu P formodes at tale sandhed af det!
Og hvis Q kommer til at holde op, så P bør sige “god”.
Hvilket gør Q start til loop! (P benægtede, at det ville.)
 
Uanset hvor P kan udføre, vil Q scoop det:
Q bruger P produktion at gøre P se dum.
Uanset P siger, det kan ikke forudsige Q:
P har ret, når det er forkert, og er falsk, når det er sandt!
 
Jeg har oprettet et paradoks, sirlige som kan være –
og blot ved hjælp af din formodede P.
Når du posited P du trådte ind i en Snare;
Din antagelse har ført dig lige ind i min hule.
 
Så hvor kan dette argument eventuelt gå?
Jeg behøver ikke at fortælle dig; Jeg er sikker på, du skal vide.
En reductio: Der kan umuligt være
en procedure, der fungerer som den mytiske P.
 
Du kan aldrig finde generelle mekaniske midler
til forudsigelse handlinger computing maskiner;
det er noget, der ikke kan gøres. Så vi brugere
skal finde vores egne fejl. Vores computere er tabere!

Comments are closed.