View
704
Download
4
Category
Preview:
DESCRIPTION
UNF-foredrag om Turing-prisen.
Citation preview
Turing-prisenEn historie om datalogiens historie
Hans HuttelInstitut for datalogiAalborg Universitet
23. september 2014
En kongerække
Kongerækker er ikke alt . . .
Var det virkelig Christian d. 4., der byggede rundetarn?
Datalogiens idehistorie
Det, jeg vil præsentere, er nærmere en idehistorie for videnskabendatalogi.
Del I
Hvem star bag prisen?
ACM
ACM er en organisation stiftet i USA i 1947. Den organiserer bredtinden for datalogi og informationsteknologi i den akademiskeverden og softwareindustrien. ACM udgiver videnskabeligetidsskrifter og organiserer konferencer inden for en lang rækkeomrader af datalogi.ACM uddeler bl.a. Turing-prisen, der blev indstiftet i 1966. (ACM
ma ikke forveksles med Academy of Country Music, der ogsa uddeler
priser.)
A.M. Turing Award
The A.M. Turing Award, the ACM’s most prestigioustechnical award, is given for major contributions oflasting importance to computing.
Med æren følger 250.000 amerikanske dollars og invitation til atgive en ACM Turing Award Lecture. Prisen er i vore dagesponsoreret af Intel og Google.
Alan Turing
Alan Turing (1912-1954) var en britisk matematiker, hvis indsatsog resultater har været helt centrale for den videnskab, vi i dagkalder for datalogi.
Alan Turing
q7
a b a c a b a
Alan Turing introducerede den model for algoritmebegrebet, vi idag kalder Turing-maskinen og beviste nogle af de første (ogvigtigste) resultater i den matematiske teori om beregnelighed.Bl.a. fandt han det første eksempel pa et simpelt matematiskproblem, der ikke kan løses med en algoritme.
Alan Turing
Alan Turing var en central skikkelse i den britiskeefterretningstjeneste arbejde med kryptanalyse pa det hemmeligecenter i Bletchley Park under 2. verdenskrig.
Alan Turing
Alan Turing var en central skikkelse i den britiskeefterretningstjeneste arbejde med kryptanalyse pa det hemmeligecenter i Bletchley Park under 2. verdenskrig.
Alan Turing
Alan Turing var en af hovedmændene bag den første britiskecomputer, udviklet pa universitetet i Manchester.
Alan Turing
Alan Turing var en af de første, der tænkte over om computeremon kan tænke. Begrebet Turing-testen skyldes ham.
Fire af de store spørgsmal, der motiverede Alan Turing
I Hvilke problemer kan man løse med algoritmer?
I Hvordan kan en computer bringes til at udføre en algoritme?
I Kan computere tænke?
I Hvordan kan en computer hjælpe med at holde informationhemmelig?
Del II
Hvilke problemer kan man løse med
algoritmer?
En algoritme er en opskrift
Dadlerne blendes med lidt vand. Peanutbutter ogkakaopulver (anvend økologisk og Fairtrade kakao)tilsættes, og det blendes med. Kagemassen kommes i etildfast fad med bagepapir, trykkes flade og bages i ca. 15minutter ved 180 grader. Tag kagen ud og lad den afkøle,sa bliver overfladen sprød, men midten er stadig dejligblød. Lad kagen køle helt af inden du skærer den ud isma, mundrette stykker.
(http://maanebarnet.org/2014/08/31/chokoladepeanutbutter-fudge-brownie/)
En algoritme er en opskrift
En algoritme, der finder det mindste tal i en liste af k tal.
Pa input x1, . . . , xk
1. i = 12. Sa længe i < k
Lad min = x1Hvis xi < min sa lad min = xiLad i = i + 1
Donald Knuth (1974)
Donald Knuth er en af de store skikkelser inden for det 20.arhundredes datalogi. Knuth startede som matematiker ogbegyndte at interessere sig for programmering, mens han studerede.
Donald Knuth (1974)
The Art of Computer Programming er Donald Knuths hovedværk.Dette er ikke en bog om programmering, men en bog omalgoritmeteori!
Donald Knuth (1974)
Et vigtigt biprodukt af Knuths bøger er TEX, som er et programder gør det nemt at opsætte strukturerede tekster, der kan havematematisk indhold. Jeg bruger det selv hele tiden. Disse slides erlavet med TEX.
Donald Knuth (1974)
Et vigtigt biprodukt af Knuths bøger er TEX, som er et programder gør det nemt at opsætte strukturerede tekster, der kan havematematisk indhold. Jeg bruger det selv hele tiden. Disse slides erlavet med TEX.
Donald Knuth (1974)
Hvis man finder en fejl i The Art of Computer Programming ogskriver til Knuth, far man en check pa $2,56.
Stephen Cook (1982)
Stephen Cook opdagede problemklassen NP og indførte det vigtigebegreb NP-fuldstændighed. Pa denne made lagde han grunden tilkompleksitetsteori, der er studiet af problemers algoritmiskesværhed.
P og NP
I Klassen P er klassen af beslutningsproblemer, hvor enalgoritme hurtigt kan finde en løsning.
I Klassen NP er klassen af alle de beslutningsproblemer, hvoren algoritme hurtigt kan undersøge om et bud pa en løsningfaktisk er en løsning.
Det er klart at P er en delklasse af NP.
Et nemt problem
Aalborg
Sulsted
Dronninglund
VraBrønderslev
Nørresundby
Er det muligt at rejse med tog fra Brønderslev til Sulsted? Dettekan man nemt finde ud af.
Et NP-fuldstændigt problem
Aalborg
Sulsted
Dronninglund
VraBrønderslev
Nørresundby
Er der en togrute, der besøger hver by præcis en gang? Det ser udsom om man kun kan fa svaret ved at prøve alle de mulige ruter.Men det er nemt at finde ud af om et forslag til en rute er gyldigt.
Et stort abent problem
Togproblemet kaldes ogsa for Hamilton-kreds-problemet og er et afde sværeste problemer i NP. Denne slags problemer kaldesNP-fuldstændige, og begrebet skyldes Stephen Cook.Ingen ved om NP = P, men kun fa tror at det er tilfældet. Detteer et af de store abne problemer i de matematiske fag.
Del III
Hvordan kan en computer bringes til at
udføre en algoritme?
Højniveau- og lavniveauprogrammering
Ofte skriver man programmer i et højniveausprog.
En compiler for et højniveausprog er et program, der oversætterprogramtekst skrevet til maskinkode.
Højniveau- og lavniveauprogrammering
Ofte skriver man programmer i et højniveausprog.
En compiler for et højniveausprog er et program, der oversætterprogramtekst skrevet til maskinkode.
Programmeringssprogs syntaks
int num;
float value
double bigNum;
bigNum = num + value;
Beskrivelsen af hvordan et program skal se ud for at være korrektopbygget skal defineres helt præcist.
John Backus (1977)
John Backus klarede sig ikke sa godt i skolen, Han prøvede atstudere kemi, men det gik ikke rigtig. Sa gav han sig til at studerematematik. Nogle dage inden han blev færdig med sinmaster-grad, kom han forbi IBMs lokaler og sa for første gang encomputer. Backus blev senere ansat ved IBM.
John Backus
John Backus kom med det første gode bud pa hvordan man kandefinere syntaksen af programmeringssprog.
John Backus
John Backus blev leder af IBMs gruppe, der udviklede det førsteprogrammeringssprog. Det hed Fortran.
Senere foreslog Backus en helt anden slags programmeringssprog,nemlig funktionsorienterede sprog.
John Backus
John Backus blev leder af IBMs gruppe, der udviklede det førsteprogrammeringssprog. Det hed Fortran.
Senere foreslog Backus en helt anden slags programmeringssprog,nemlig funktionsorienterede sprog.
Fortran –– et eksempel
Fakultetsfunktionen er defineret for ethvert naturligt tal n ved
n! = n · (n − 1) · · · 1
Sadan kan man skrive fakultetsfunktionen i Fortran.
FUNCTION FACT(N)
INTEGER N,I,FACT
FACT=1
DO 10 I=1,N
10 FACT=FACT*I
END
Peter Naur (2005)
Den eneste dansker, der indtil nu har modtaget Turing-prisen, erPeter Naur. Ordet datalogi skyldes ham.
Peter Naur (2005)
Peter Naur var oprindelig en kendt astronom; det var arbejdet medat behandle astronomiske data, der gjorde ham interesseret idatabehandling.
Peter Naur og ALGOL
Sammen med John Backus og andre fremtrædende dataloger varNaur bag programmeringssproget ALGOL 60. Ogsa flere andresenere Turing-prismodtagere var med til at udarbejdeALGOL60-rapporten.
Peter Naur
<program> ::= <erkl> <krop>
<erkl> ::= <type> <var>; <erkl> | tom
<type> ::= int | bool | real
<var> ::= <tegn>*
<tegn> ::= a | b | c | d
<krop> ::= ...
Den grammatik-notation, Backus og Naur indførte, kaldes ofteBNF (Backus-Naur-Form). Notationen har en slaende lighed medNoam Chomskys kontekstfrie grammatikker.
Fran Allen (2006)
Frances ‘Fran’ Allen var oprindelig matematiker og holdt af atundervise i high school. Som kandidatstuderende sidst i 1950’ernetog hun nogle programmeringskurser. Sa fik hun et midlertidigt jobved IBM.
Mange af de teknikker, som i dag er helt gængse icompilere, skyldes hende.
Fran Allen (2006)
Frances ‘Fran’ Allen var oprindelig matematiker og holdt af atundervise i high school. Som kandidatstuderende sidst i 1950’ernetog hun nogle programmeringskurser. Sa fik hun et midlertidigt jobved IBM. Mange af de teknikker, som i dag er helt gængse icompilere, skyldes hende.
Donald Knuth og ALGOL
integer procedure mystik
begin comment x er en lokal variabel
x := x+1
mystik := 3
end mystik
I 1967 skrev Donald Knuth en berømt artikel om ALGOL 60. Hanstillede det grimme spørgsmal
Hvad er værdien af x + mystik ?
Det afhænger af hvilken rækkefølge vi udregner leddene i den lillesum. ALGOL60-rapporten havde ikke beskrevet det!
Donald Knuth og ALGOL
integer procedure mystik
begin comment x er en lokal variabel
x := x+1
mystik := 3
end mystik
I 1967 skrev Donald Knuth en berømt artikel om ALGOL 60. Hanstillede det grimme spørgsmal
Hvad er værdien af x + mystik ?
Det afhænger af hvilken rækkefølge vi udregner leddene i den lillesum. ALGOL60-rapporten havde ikke beskrevet det!
Programmeringssprogs semantik
The establishment of formal standards for proofs aboutprograms [. . . ] and the proposal that the semantics of aprogramming language may be defined independently ofall processors for that language, by establishing standardsof rigor for proofs about programs in the language,appears to be novel. (Floyd, 1967)
Beskrivelsen af hvad et program laver, nar det bliver udført skalvære præcis og skal være maskinuafhængig.
Robert Floyd (1978)
Robert Floyd fik en bachelor-grad i fysik, men ogsa han blev sugetind i algoritmernes verden. Han endte som professor i datalogi paStanford uden nogen sinde at have faet en PhD-grad. DonaldKnuth siger i The Art of Computer Programming
. . . only five really good papers about compilers had beenwritten so far, and Bob had been the author of all five.
Robert Floyd
Robert Floyd var med til at grundlægge studiet afprogrammeringssprogs semantik. Et af hans vigtigste bidrag varbegrebet invarianter.
Tilbage til fakultetsfunktionen
En invariant er en logisk udsagn der gælder efter ethvertgennemløb af en programløkke.
FUNCTION FACT(N)
INTEGER N,I,FACT
FACT=1
DO 10 I=1,N
10 FACT=FACT*I
END
Det gælder altid efter i gennemløb af løkken (0 ≤ i ≤ n) atFAK = i !. Hvis vi kan vise dette, ved vi at programmet faktiskberegner fakultetsfunktionen af N.
Tilbage til fakultetsfunktionen
En invariant er en logisk udsagn der gælder efter ethvertgennemløb af en programløkke.
FUNCTION FACT(N)
INTEGER N,I,FACT
FACT=1
DO 10 I=1,N
10 FACT=FACT*I
END
Det gælder altid efter i gennemløb af løkken (0 ≤ i ≤ n) atFAK = i !. Hvis vi kan vise dette, ved vi at programmet faktiskberegner fakultetsfunktionen af N.
Dana Scott (1976)
Dana Scott var sammen med Christopher Strachey med til atformulere en andet vigtig matematisk teori for programmerssemantik. Denne teori er baseret pa at vi kan opfatte et programsom en matematisk funktion.
Denotationel semantik
Tænk pa et program som en funktion fra mængden af muligehukommelsesindhold til mængden af mulige hukommelsesindhold.
i 7→ 0
n 7→ 5
fact 7→ 1
i 7→ 5
n 7→ 5
fact 7→ 120
Nu skal vi ‘bare’ beskrive hvilken sadan funktion hver enkeltkonstruktion i et programmeringssprog beskriver.
Robin Milner (1991)
Robin Milner studerede matematik og filosofi i Cambridge. Efter entid som matematiklærer i gymnasiet blev han ansat hos Ferranti.Siden arbejdede han sammen med Dana Scott, og han blev førstprofessor i Edinburgh, siden i Cambridge. Robin Milner vejledtemange PhD-afhandlinger, men fik aldrig selv mere end den førstebachelor-grad.
Robin Milner
Robin Milner fik Turing-prisen for
I Sit arbejde om typesystemer for funktionsorienteredeprogrammeringssprog; Milner var en af hovedmændene bagsproget ML.
I Sit arbejde inden for semantik for parallelle programmer.
I Sit arbejde inden for bevisassistenter.
Fakultetsfunktionen i ML
fun fak 0 = 1
| fak n = n * (fak (n-1));
Hvad ML-systemet siger om funktionen:
Standard ML of New Jersey v110.76 [built: Mon Aug 19 10:38:12 2013]
- [opening /tmp/ml224N5O]
val fak = fn : int -> int
val it = () : unit
- [opening /tmp/ml224N5O]
val fak = fn : int -> int
val it = () : unit
- fak 7;
val it = 5040 : int
-
Fakultetsfunktionen i ML
fun fak 0 = 1
| fak n = n * (fak (n-1));
Hvad ML-systemet siger om funktionen:
Standard ML of New Jersey v110.76 [built: Mon Aug 19 10:38:12 2013]
- [opening /tmp/ml224N5O]
val fak = fn : int -> int
val it = () : unit
- [opening /tmp/ml224N5O]
val fak = fn : int -> int
val it = () : unit
- fak 7;
val it = 5040 : int
-
Kommunikerende systemer
En vigtig erkendelse, som Robin Milner gjorde, er at der er mangeandre interessante programmer, der ikke pænt kan beskrives sommatematiske funktioner:
I Mange programmer skal faktisk aldrig standse!
I Parallelle programmer bestar typisk af en samlingkomponenter, der kommunikerer indbyrdes.
Kommunikerende systemer
En vigtig erkendelse, som Robin Milner gjorde, er at der er mangeandre interessante programmer, der ikke pænt kan beskrives sommatematiske funktioner:
I Mange programmer skal faktisk aldrig standse!
I Parallelle programmer bestar typisk af en samlingkomponenter, der kommunikerer indbyrdes.
Kommunikerende systemer
Tænk pa det kommunikerende system, der hedder Internettet. Herer et lille udsnit.
RejsebureauHotel
Flyselskab
Leslie Lamport (2014)
Dette ars prismodtager er Leslie Lamport, der har ydet store bidragtil teorien om kommunikerende parallelle systemer. Lamport erogsa manden bag LATEX, der er en samling makroer ovenpa KnuthsTEX(disse slides er lavet med brug af LATEX).
Del IV
Kan computere tænke?
Herbert Simon og Allen Newell (1975)
Herbert Simon havde oprindelig studeret statskundskab. AllenNewell var fysiker. Sammen udviklede de nogle af de førsteprogrammer, der skulle simulere hvordan mennesker løsteproblemer: Logic Theorist og General Problem Solver. Et af deresvigtige bidrag var ideen om heuristikker.
Herbert Simon og Allen Newell (1975)
Herbert Simon og Allen Newell var ekstremt optimistiske!
Over the Christmas holiday, Allen Newell and I invented amachine that thinks.
I 1978 fik Herbert Simon Nobelprisen i økonomi. Han er deneneste, der har modtaget bade en Nobelpris og en Turing-pris.
Del V
Hvordan kan computere hjælpe med at
holde information hemmelig?
Kryptologi
Kryptografi Læren om at skrive beskeder, sa de ikke kan læses afuvedkommende. Dette kaldes at kryptere beskeder.En metode til kryptering kaldes et kryptosystem.
Kryptanalyse Læren om at tyde beskeder, der er blevet krypteret.
To enkle principper for kryptering
Transposition
. . . D E F G H I J K L M . . .
. . . A B C D E F G H I J . . .
Denne ide blev allerede brugt pa Julius Cæsars tid.Kryptosystemets nøgle er forskydningen mellem klartekst-alfabetog ciffer-alfabet – her er den 3.
Permutation
. . . K P F A L R Q B . . . D . . .
. . . A B C D E F G H I J . . .Kryptosystemets nøgle er her tabellen, der forklarer hvordan hvertbogstav krypteres.
Symmetrisk og asymmetrisk kryptering
Et kryptosystem, hvor man bruger samme nøgle K til at kryptereog dekryptere med, kaldes symmetrisk. Sa har vi
decK (encK (M)) = M
for enhver besked M
Indtil begyndelsen af 1970’erne troede man ikke at andet varmuligt. Problemet er at nøglen skal deles mellem brugerne ogholdes hemmelig.
Symmetrisk og asymmetrisk kryptering
Men de amerikanske kryptologer Diffie og Hellman opdagede atman kan lave asymmetrisk kryptering. Her har hver bruger enoffentlig nøgle Kpub og en privat nøgle Kpriv .Sa har vi
decKpriv(encKpub
(M)) = M
for enhver besked M.Alle kender alle andres offentlige nøgle Kpub, men kun hver enkeltbruger kender sin egen Kpriv .Det store spørgsmal er nu: Hvordan kan man lave et praktiskanvendeligt kryptosystem, der gør dette muligt og er svært atbryde?
Ronald Rivest, Adi Shamir og Leonard Adleman (2002)
Disse tre herrer opdagede i 1976 et af det første praktiskanvendelige asymmetriske kryptosystemer, som formodentlig ersvært at bryde. Det er baseret pa resultater fra algebraisk talteori. Idag bliver RSA-systemet brugt i næsten alle krypteredekommunikationer pa internettet.
Del VI
En, der aldrig fik Turing-prisen
Grace Hopper
Grace Brewster Murray blev født i New York i 1906. Hun studeredematematik og fik sin PhD i 1934. I 1930 blev hun gift og kaldte sigfra da af Grace Murray Hopper (ogsa efter hun blev skilt). I 1943meldte hun sig til USAs flade. Langsomt steg hun i graderne, og i1985 blev hun admiral.
Grace Hopper
Grace Murray Hopper blev ansat ved firmaet Eckert–MauchlyComputer Corporation, der byggede den tidlige computer UNIVAC.Hun lavede en compiler (i dag ville man snarere kalde den for enlinker og loader) til UNIVAC-programmeringssproget A helt tilbagei 1951-1952.
Grace Hopper
Grace Murray Hopper var en hoveddrivkraft i udviklingen afprogrammeringssproget COBOL.
Hvorfor hedder det ‘debugging’?
Da Grace Hopper arbejdede med Mark II-computeren pa Harvard,fløj der et stakkels møl ind i maskinen. (Ordet ‘bug’ er dog ogsatidligere blevet brugt pa engelsk om en fejl.)
Admiral Grace Hopper
Grace Hopper sluttede sin militære karriere som admiral i USAsflade.
ACM har indstiftet The Grace Murray Hopper Award som ensærlig pris til dataloger under 35.
Admiral Grace Hopper
Grace Hopper sluttede sin militære karriere som admiral i USAsflade.ACM har indstiftet The Grace Murray Hopper Award som ensærlig pris til dataloger under 35.
Del VII
Og sa var der ogsa . . .
Jeg har ikke nævnt bl.a.
I Tony Hoare, der udviklede den logiske teori bag invarianter ogaksiomatisk semantik,
I John McCarthy, der skabte programmeringssproget LISP,
I Vinton Cerf og Robert Kahn, der fik prisen for deres arbejdemed Internet-protokollen TCP/IP,
I Charles Thacker, der var med til at udvikle den personligecomputer eller
I Ole-Johan Dahl og Kristen Nygaard, to norske dataloger, derudviklede det første objektorienterede programmeringssprogSIMULA.
I . . . og mange flere.
Hvor kan man læse mere?
http://amturing.acm.org
Recommended