SlideShare a Scribd company logo
1 of 78
Download to read offline
Turing-prisen 
En historie om datalogiens historie 
Hans Huttel 
Institut for datalogi 
Aalborg Universitet 
23. september 2014
En kongerkke
Kongerkker er ikke alt . . . 
Var det virkelig Christian d. 4., der byggede rundetarn?
Datalogiens idehistorie 
Det, jeg vil prsentere, er nrmere en idehistorie for videnskaben 
datalogi.
Del I 
Hvem star bag prisen?
ACM 
ACM er en organisation stiftet i USA i 1947. Den organiserer bredt 
inden for datalogi og informationsteknologi i den akademiske 
verden og softwareindustrien. ACM udgiver videnskabelige 
tidsskrifter og organiserer konferencer inden for en lang rkke 
omrader 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 prestigious 
technical award, is given for major contributions of 
lasting importance to computing. 
Med ren flger 250.000 amerikanske dollars og invitation til at 
give en ACM Turing Award Lecture. Prisen er i vore dage 
sponsoreret af Intel og Google.
Alan Turing 
Alan Turing (1912-1954) var en britisk matematiker, hvis indsats 
og resultater har vret helt centrale for den videnskab, vi i dag 
kalder for datalogi.
Alan Turing 
a b a c a b a 
q7 
Alan Turing introducerede den model for algoritmebegrebet, vi i 
dag kalder Turing-maskinen og beviste nogle af de frste (og 
vigtigste) resultater i den matematiske teori om beregnelighed. 
Bl.a. fandt han det frste eksempel pa et simpelt matematisk 
problem, der ikke kan lses med en algoritme.
Alan Turing 
Alan Turing var en central skikkelse i den britiske 
efterretningstjeneste arbejde med kryptanalyse pa det hemmelige 
center i Bletchley Park under 2. verdenskrig.
Alan Turing 
Alan Turing var en central skikkelse i den britiske 
efterretningstjeneste arbejde med kryptanalyse pa det hemmelige 
center i Bletchley Park under 2. verdenskrig.
Alan Turing 
Alan Turing var en af hovedmndene bag den frste britiske 
computer, udviklet pa universitetet i Manchester.
Alan Turing 
Alan Turing var en af de frste, der tnkte over om computere 
mon kan tnke. Begrebet Turing-testen skyldes ham.
Fire af de store sprgsmal, der motiverede Alan Turing 
I Hvilke problemer kan man lse med algoritmer? 
I Hvordan kan en computer bringes til at udfre en algoritme? 
I Kan computere tnke? 
I Hvordan kan en computer hjlpe med at holde information 
hemmelig?
Del II 
Hvilke problemer kan man lse med 
algoritmer?
En algoritme er en opskrift 
Dadlerne blendes med lidt vand. Peanutbutter og 
kakaopulver (anvend kologisk og Fairtrade kakao) 
tilsttes, og det blendes med. Kagemassen kommes i et 
ildfast fad med bagepapir, trykkes 
ade og bages i ca. 15 
minutter ved 180 grader. Tag kagen ud og lad den afkle, 
sa bliver over
aden sprd, men midten er stadig dejlig 
bld. Lad kagen kle helt af inden du skrer den ud i 
sma, mundrette stykker. 
(http://maanebarnet.org/2014/08/31/chokoladepeanutbutter-fudge- 
brownie/)
En algoritme er en opskrift 
En algoritme, der
nder det mindste tal i en liste af k tal. 
Pa input x1; : : : ; xk 
1. i = 1 
2. Sa lnge i  k 
Lad min = x1 
Hvis xi  min sa lad min = xi 
Lad i = i + 1
Donald Knuth (1974) 
Donald Knuth er en af de store skikkelser inden for det 20. 
arhundredes datalogi. Knuth startede som matematiker og 
begyndte at interessere sig for programmering, mens han studerede.
Donald Knuth (1974) 
The Art of Computer Programming er Donald Knuths hovedvrk. 
Dette er ikke en bog om programmering, men en bog om 
algoritmeteori!
Donald Knuth (1974) 
Et vigtigt biprodukt af Knuths bger er TEX, som er et program 
der gr det nemt at opstte strukturerede tekster, der kan have 
matematisk indhold. Jeg bruger det selv hele tiden. Disse slides er 
lavet med TEX.
Donald Knuth (1974) 
Et vigtigt biprodukt af Knuths bger er TEX, som er et program 
der gr det nemt at opstte strukturerede tekster, der kan have 
matematisk indhold. Jeg bruger det selv hele tiden. Disse slides er 
lavet med TEX.
Donald Knuth (1974) 
Hvis man
nder en fejl i The Art of Computer Programming og 
skriver til Knuth, far man en check pa $2,56.
Stephen Cook (1982) 
Stephen Cook opdagede problemklassen NP og indfrte det vigtige 
begreb NP-fuldstndighed. Pa denne made lagde han grunden til 
kompleksitetsteori, der er studiet af problemers algoritmiske 
svrhed.
P og NP 
I Klassen P er klassen af beslutningsproblemer, hvor en 
algoritme hurtigt kan
nde en lsning. 
I Klassen NP er klassen af alle de beslutningsproblemer, hvor 
en algoritme hurtigt kan undersge om et bud pa en lsning 
faktisk er en lsning. 
Det er klart at P er en delklasse af NP.
Et nemt problem 
Aalborg 
Sulsted 
Dronninglund 
Brnderslev Vra 
Nrresundby 
Er det muligt at rejse med tog fra Brnderslev til Sulsted? Dette 
kan man nemt
nde ud af.
Et NP-fuldstndigt problem 
Aalborg 
Sulsted 
Dronninglund 
Brnderslev Vra 
Nrresundby 
Er der en togrute, der besger hver by prcis en gang? Det ser ud 
som om man kun kan fa svaret ved at prve alle de mulige ruter. 
Men det er nemt at
nde ud af om et forslag til en rute er gyldigt.
Et stort abent problem 
Togproblemet kaldes ogsa for Hamilton-kreds-problemet og er et af 
de svreste problemer i NP. Denne slags problemer kaldes 
NP-fuldstndige, og begrebet skyldes Stephen Cook. 
Ingen ved om NP = P, men kun fa tror at det er tilfldet. Dette 
er et af de store abne problemer i de matematiske fag.
Del III 
Hvordan kan en computer bringes til at 
udfre en algoritme?
Hjniveau- og lavniveauprogrammering 
Ofte skriver man programmer i et hjniveausprog. 
En compiler for et hjniveausprog er et program, der overstter 
programtekst skrevet til maskinkode.
Hjniveau- og lavniveauprogrammering 
Ofte skriver man programmer i et hjniveausprog. 
En compiler for et hjniveausprog er et program, der overstter 
programtekst skrevet til maskinkode.
Programmeringssprogs syntaks 
int num; 
float value 
double bigNum; 
bigNum = num + value; 
Beskrivelsen af hvordan et program skal se ud for at vre korrekt 
opbygget skal de
neres helt prcist.
John Backus (1977) 
John Backus klarede sig ikke sa godt i skolen, Han prvede at 
studere kemi, men det gik ikke rigtig. Sa gav han sig til at studere 
matematik. Nogle dage inden han blev frdig med sin 
master-grad, kom han forbi IBMs lokaler og sa for frste gang en 
computer. Backus blev senere ansat ved IBM.
John Backus 
John Backus kom med det frste gode bud pa hvordan man kan 
de
nere syntaksen af programmeringssprog.
John Backus 
John Backus blev leder af IBMs gruppe, der udviklede det frste 
programmeringssprog. Det hed Fortran.
John Backus 
John Backus blev leder af IBMs gruppe, der udviklede det frste 
programmeringssprog. Det hed Fortran. 
Senere foreslog Backus en helt anden slags programmeringssprog, 
nemlig funktionsorienterede sprog.
Fortran {{ et eksempel 
Fakultetsfunktionen er de
neret 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, er 
Peter Naur. Ordet datalogi skyldes ham.
Peter Naur (2005) 
Peter Naur var oprindelig en kendt astronom; det var arbejdet med 
at behandle astronomiske data, der gjorde ham interesseret i 
databehandling.
Peter Naur og ALGOL 
Sammen med John Backus og andre fremtrdende dataloger var 
Naur bag programmeringssproget ALGOL 60. Ogsa 
ere andre 
senere Turing-prismodtagere var med til at udarbejde 
ALGOL60-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 indfrte, kaldes ofte 
BNF (Backus-Naur-Form). Notationen har en slaende lighed med 
Noam Chomskys kontekstfrie grammatikker.
Fran Allen (2006) 
Frances `Fran' Allen var oprindelig matematiker og holdt af at 
undervise i high school. Som kandidatstuderende sidst i 1950'erne 
tog hun nogle programmeringskurser. Sa
k hun et midlertidigt job 
ved IBM.
Fran Allen (2006) 
Frances `Fran' Allen var oprindelig matematiker og holdt af at 
undervise i high school. Som kandidatstuderende sidst i 1950'erne 
tog hun nogle programmeringskurser. Sa
k hun et midlertidigt job 
ved IBM. Mange af de teknikker, som i dag er helt gngse i 
compilere, 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 bermt artikel om ALGOL 60. Han 
stillede det grimme sprgsmal 
Hvad er vrdien af x + mystik ?
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 bermt artikel om ALGOL 60. Han 
stillede det grimme sprgsmal 
Hvad er vrdien af x + mystik ? 
Det afhnger af hvilken rkkeflge vi udregner leddene i den lille 
sum. ALGOL60-rapporten havde ikke beskrevet det!
Programmeringssprogs semantik 
The establishment of formal standards for proofs about 
programs [. . . ] and the proposal that the semantics of a 
programming language may be de
ned independently of 
all processors for that language, by establishing standards 
of rigor for proofs about programs in the language, 
appears to be novel. (Floyd, 1967) 
Beskrivelsen af hvad et program laver, nar det bliver udfrt skal 
vre prcis og skal vre maskinuafhngig.
Robert Floyd (1978) 
Robert Floyd
k en bachelor-grad i fysik, men ogsa han blev suget 
ind i algoritmernes verden. Han endte som professor i datalogi pa 
Stanford uden nogen sinde at have faet en PhD-grad. Donald 
Knuth siger i The Art of Computer Programming 
. . . only
ve really good papers about compilers had been 
written so far, and Bob had been the author of all
ve.
Robert Floyd 
Robert Floyd var med til at grundlgge studiet af 
programmeringssprogs semantik. Et af hans vigtigste bidrag var 
begrebet invarianter.
Tilbage til fakultetsfunktionen 
En invariant er en logisk udsagn der glder efter ethvert 
gennemlb af en programlkke.
Tilbage til fakultetsfunktionen 
En invariant er en logisk udsagn der glder efter ethvert 
gennemlb af en programlkke. 
FUNCTION FACT(N) 
INTEGER N,I,FACT 
FACT=1 
DO 10 I=1,N 
10 FACT=FACT*I 
END 
Det glder altid efter i gennemlb af lkken (0  i  n) at 
FAK = i !. Hvis vi kan vise dette, ved vi at programmet faktisk 
beregner fakultetsfunktionen af N.
Dana Scott (1976) 
Dana Scott var sammen med Christopher Strachey med til at 
formulere en andet vigtig matematisk teori for programmers 
semantik. Denne teori er baseret pa at vi kan opfatte et program 
som en matematisk funktion.
Denotationel semantik 
Tnk pa et program som en funktion fra mngden af mulige 
hukommelsesindhold til mngden af mulige hukommelsesindhold. 
i7! 0 
n7! 5 
fact7! 1 
i7! 5 
n7! 5 
fact7! 120 
Nu skal vi `bare' beskrive hvilken sadan funktion hver enkelt 
konstruktion i et programmeringssprog beskriver.
Robin Milner (1991) 
Robin Milner studerede matematik og
loso
i Cambridge. Efter en 
tid som matematiklrer i gymnasiet blev han ansat hos Ferranti. 
Siden arbejdede han sammen med Dana Scott, og han blev frst 
professor i Edinburgh, siden i Cambridge. Robin Milner vejledte 
mange PhD-afhandlinger, men
k aldrig selv mere end den frste 
bachelor-grad.
Robin Milner 
Robin Milner
k Turing-prisen for 
I Sit arbejde om typesystemer for funktionsorienterede 
programmeringssprog; Milner var en af hovedmndene bag 
sproget 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));
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 - [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 mange 
andre interessante programmer, der ikke pnt kan beskrives som 
matematiske funktioner: 
I Mange programmer skal faktisk aldrig standse!
Kommunikerende systemer 
En vigtig erkendelse, som Robin Milner gjorde, er at der er mange 
andre interessante programmer, der ikke pnt kan beskrives som 
matematiske funktioner: 
I Mange programmer skal faktisk aldrig standse! 
I Parallelle programmer bestar typisk af en samling 
komponenter, der kommunikerer indbyrdes.
Kommunikerende systemer 
Tnk pa det kommunikerende system, der hedder Internettet. Her 
er et lille udsnit. 
Hotel Rejsebureau 
Flyselskab
Leslie Lamport (2014) 
Dette ars prismodtager er Leslie Lamport, der har ydet store bidrag 
til teorien om kommunikerende parallelle systemer. Lamport er 
ogsa manden bag LATEX, der er en samling makroer ovenpa Knuths 
TEX(disse slides er lavet med brug af LATEX).
Del IV 
Kan computere tnke?

More Related Content

More from Hans Hyttel

Secrecy and Authenticity Properties of the Lightning Network Protocol
Secrecy and Authenticity Properties of the Lightning Network ProtocolSecrecy and Authenticity Properties of the Lightning Network Protocol
Secrecy and Authenticity Properties of the Lightning Network ProtocolHans Hyttel
 
Overvågning – kort foredrag ved Akademisk Salon 6. april 2017
Overvågning – kort foredrag ved Akademisk Salon 6. april 2017Overvågning – kort foredrag ved Akademisk Salon 6. april 2017
Overvågning – kort foredrag ved Akademisk Salon 6. april 2017Hans Hyttel
 
Binary Session Types for Psi-Calculi (APLAS 2016)
Binary Session Types for Psi-Calculi (APLAS 2016)Binary Session Types for Psi-Calculi (APLAS 2016)
Binary Session Types for Psi-Calculi (APLAS 2016)Hans Hyttel
 
Undervisningens dag 2016
Undervisningens dag 2016Undervisningens dag 2016
Undervisningens dag 2016Hans Hyttel
 
CHER 2015 – If PBL is the answer, then what is the problem?
CHER 2015 – If PBL is the answer, then what is the problem?CHER 2015 – If PBL is the answer, then what is the problem?
CHER 2015 – If PBL is the answer, then what is the problem?Hans Hyttel
 
Anders og Louises præsentation til stormødet den 16. september 2014
Anders og Louises præsentation til stormødet den 16. september 2014Anders og Louises præsentation til stormødet den 16. september 2014
Anders og Louises præsentation til stormødet den 16. september 2014Hans Hyttel
 
Icwl2014 foredrag
Icwl2014 foredragIcwl2014 foredrag
Icwl2014 foredragHans Hyttel
 
Nej til Egholm-motorvejen fordi...
Nej til Egholm-motorvejen fordi...Nej til Egholm-motorvejen fordi...
Nej til Egholm-motorvejen fordi...Hans Hyttel
 

More from Hans Hyttel (9)

Secrecy and Authenticity Properties of the Lightning Network Protocol
Secrecy and Authenticity Properties of the Lightning Network ProtocolSecrecy and Authenticity Properties of the Lightning Network Protocol
Secrecy and Authenticity Properties of the Lightning Network Protocol
 
Om ligestilling
Om ligestillingOm ligestilling
Om ligestilling
 
Overvågning – kort foredrag ved Akademisk Salon 6. april 2017
Overvågning – kort foredrag ved Akademisk Salon 6. april 2017Overvågning – kort foredrag ved Akademisk Salon 6. april 2017
Overvågning – kort foredrag ved Akademisk Salon 6. april 2017
 
Binary Session Types for Psi-Calculi (APLAS 2016)
Binary Session Types for Psi-Calculi (APLAS 2016)Binary Session Types for Psi-Calculi (APLAS 2016)
Binary Session Types for Psi-Calculi (APLAS 2016)
 
Undervisningens dag 2016
Undervisningens dag 2016Undervisningens dag 2016
Undervisningens dag 2016
 
CHER 2015 – If PBL is the answer, then what is the problem?
CHER 2015 – If PBL is the answer, then what is the problem?CHER 2015 – If PBL is the answer, then what is the problem?
CHER 2015 – If PBL is the answer, then what is the problem?
 
Anders og Louises præsentation til stormødet den 16. september 2014
Anders og Louises præsentation til stormødet den 16. september 2014Anders og Louises præsentation til stormødet den 16. september 2014
Anders og Louises præsentation til stormødet den 16. september 2014
 
Icwl2014 foredrag
Icwl2014 foredragIcwl2014 foredrag
Icwl2014 foredrag
 
Nej til Egholm-motorvejen fordi...
Nej til Egholm-motorvejen fordi...Nej til Egholm-motorvejen fordi...
Nej til Egholm-motorvejen fordi...
 

UNF-foredrag om Turing-prisen

  • 1. Turing-prisen En historie om datalogiens historie Hans Huttel Institut for datalogi Aalborg Universitet 23. september 2014
  • 3. Kongerkker er ikke alt . . . Var det virkelig Christian d. 4., der byggede rundetarn?
  • 4. Datalogiens idehistorie Det, jeg vil prsentere, er nrmere en idehistorie for videnskaben datalogi.
  • 5. Del I Hvem star bag prisen?
  • 6. ACM ACM er en organisation stiftet i USA i 1947. Den organiserer bredt inden for datalogi og informationsteknologi i den akademiske verden og softwareindustrien. ACM udgiver videnskabelige tidsskrifter og organiserer konferencer inden for en lang rkke omrader 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.)
  • 7. A.M. Turing Award The A.M. Turing Award, the ACM's most prestigious technical award, is given for major contributions of lasting importance to computing. Med ren flger 250.000 amerikanske dollars og invitation til at give en ACM Turing Award Lecture. Prisen er i vore dage sponsoreret af Intel og Google.
  • 8. Alan Turing Alan Turing (1912-1954) var en britisk matematiker, hvis indsats og resultater har vret helt centrale for den videnskab, vi i dag kalder for datalogi.
  • 9. Alan Turing a b a c a b a q7 Alan Turing introducerede den model for algoritmebegrebet, vi i dag kalder Turing-maskinen og beviste nogle af de frste (og vigtigste) resultater i den matematiske teori om beregnelighed. Bl.a. fandt han det frste eksempel pa et simpelt matematisk problem, der ikke kan lses med en algoritme.
  • 10. Alan Turing Alan Turing var en central skikkelse i den britiske efterretningstjeneste arbejde med kryptanalyse pa det hemmelige center i Bletchley Park under 2. verdenskrig.
  • 11. Alan Turing Alan Turing var en central skikkelse i den britiske efterretningstjeneste arbejde med kryptanalyse pa det hemmelige center i Bletchley Park under 2. verdenskrig.
  • 12. Alan Turing Alan Turing var en af hovedmndene bag den frste britiske computer, udviklet pa universitetet i Manchester.
  • 13. Alan Turing Alan Turing var en af de frste, der tnkte over om computere mon kan tnke. Begrebet Turing-testen skyldes ham.
  • 14. Fire af de store sprgsmal, der motiverede Alan Turing I Hvilke problemer kan man lse med algoritmer? I Hvordan kan en computer bringes til at udfre en algoritme? I Kan computere tnke? I Hvordan kan en computer hjlpe med at holde information hemmelig?
  • 15. Del II Hvilke problemer kan man lse med algoritmer?
  • 16. En algoritme er en opskrift Dadlerne blendes med lidt vand. Peanutbutter og kakaopulver (anvend kologisk og Fairtrade kakao) tilsttes, og det blendes med. Kagemassen kommes i et ildfast fad med bagepapir, trykkes ade og bages i ca. 15 minutter ved 180 grader. Tag kagen ud og lad den afkle, sa bliver over aden sprd, men midten er stadig dejlig bld. Lad kagen kle helt af inden du skrer den ud i sma, mundrette stykker. (http://maanebarnet.org/2014/08/31/chokoladepeanutbutter-fudge- brownie/)
  • 17. En algoritme er en opskrift En algoritme, der
  • 18. nder det mindste tal i en liste af k tal. Pa input x1; : : : ; xk 1. i = 1 2. Sa lnge i k Lad min = x1 Hvis xi min sa lad min = xi Lad i = i + 1
  • 19. Donald Knuth (1974) Donald Knuth er en af de store skikkelser inden for det 20. arhundredes datalogi. Knuth startede som matematiker og begyndte at interessere sig for programmering, mens han studerede.
  • 20. Donald Knuth (1974) The Art of Computer Programming er Donald Knuths hovedvrk. Dette er ikke en bog om programmering, men en bog om algoritmeteori!
  • 21. Donald Knuth (1974) Et vigtigt biprodukt af Knuths bger er TEX, som er et program der gr det nemt at opstte strukturerede tekster, der kan have matematisk indhold. Jeg bruger det selv hele tiden. Disse slides er lavet med TEX.
  • 22. Donald Knuth (1974) Et vigtigt biprodukt af Knuths bger er TEX, som er et program der gr det nemt at opstte strukturerede tekster, der kan have matematisk indhold. Jeg bruger det selv hele tiden. Disse slides er lavet med TEX.
  • 24. nder en fejl i The Art of Computer Programming og skriver til Knuth, far man en check pa $2,56.
  • 25. Stephen Cook (1982) Stephen Cook opdagede problemklassen NP og indfrte det vigtige begreb NP-fuldstndighed. Pa denne made lagde han grunden til kompleksitetsteori, der er studiet af problemers algoritmiske svrhed.
  • 26. P og NP I Klassen P er klassen af beslutningsproblemer, hvor en algoritme hurtigt kan
  • 27. nde en lsning. I Klassen NP er klassen af alle de beslutningsproblemer, hvor en algoritme hurtigt kan undersge om et bud pa en lsning faktisk er en lsning. Det er klart at P er en delklasse af NP.
  • 28. Et nemt problem Aalborg Sulsted Dronninglund Brnderslev Vra Nrresundby Er det muligt at rejse med tog fra Brnderslev til Sulsted? Dette kan man nemt
  • 30. Et NP-fuldstndigt problem Aalborg Sulsted Dronninglund Brnderslev Vra Nrresundby Er der en togrute, der besger hver by prcis en gang? Det ser ud som om man kun kan fa svaret ved at prve alle de mulige ruter. Men det er nemt at
  • 31. nde ud af om et forslag til en rute er gyldigt.
  • 32. Et stort abent problem Togproblemet kaldes ogsa for Hamilton-kreds-problemet og er et af de svreste problemer i NP. Denne slags problemer kaldes NP-fuldstndige, og begrebet skyldes Stephen Cook. Ingen ved om NP = P, men kun fa tror at det er tilfldet. Dette er et af de store abne problemer i de matematiske fag.
  • 33. Del III Hvordan kan en computer bringes til at udfre en algoritme?
  • 34. Hjniveau- og lavniveauprogrammering Ofte skriver man programmer i et hjniveausprog. En compiler for et hjniveausprog er et program, der overstter programtekst skrevet til maskinkode.
  • 35. Hjniveau- og lavniveauprogrammering Ofte skriver man programmer i et hjniveausprog. En compiler for et hjniveausprog er et program, der overstter programtekst skrevet til maskinkode.
  • 36. Programmeringssprogs syntaks int num; float value double bigNum; bigNum = num + value; Beskrivelsen af hvordan et program skal se ud for at vre korrekt opbygget skal de
  • 38. John Backus (1977) John Backus klarede sig ikke sa godt i skolen, Han prvede at studere kemi, men det gik ikke rigtig. Sa gav han sig til at studere matematik. Nogle dage inden han blev frdig med sin master-grad, kom han forbi IBMs lokaler og sa for frste gang en computer. Backus blev senere ansat ved IBM.
  • 39. John Backus John Backus kom med det frste gode bud pa hvordan man kan de
  • 40. nere syntaksen af programmeringssprog.
  • 41. John Backus John Backus blev leder af IBMs gruppe, der udviklede det frste programmeringssprog. Det hed Fortran.
  • 42. John Backus John Backus blev leder af IBMs gruppe, der udviklede det frste programmeringssprog. Det hed Fortran. Senere foreslog Backus en helt anden slags programmeringssprog, nemlig funktionsorienterede sprog.
  • 43. Fortran {{ et eksempel Fakultetsfunktionen er de
  • 44. neret 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
  • 45. Peter Naur (2005) Den eneste dansker, der indtil nu har modtaget Turing-prisen, er Peter Naur. Ordet datalogi skyldes ham.
  • 46. Peter Naur (2005) Peter Naur var oprindelig en kendt astronom; det var arbejdet med at behandle astronomiske data, der gjorde ham interesseret i databehandling.
  • 47. Peter Naur og ALGOL Sammen med John Backus og andre fremtrdende dataloger var Naur bag programmeringssproget ALGOL 60. Ogsa ere andre senere Turing-prismodtagere var med til at udarbejde ALGOL60-rapporten.
  • 48. 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 indfrte, kaldes ofte BNF (Backus-Naur-Form). Notationen har en slaende lighed med Noam Chomskys kontekstfrie grammatikker.
  • 49. Fran Allen (2006) Frances `Fran' Allen var oprindelig matematiker og holdt af at undervise i high school. Som kandidatstuderende sidst i 1950'erne tog hun nogle programmeringskurser. Sa
  • 50. k hun et midlertidigt job ved IBM.
  • 51. Fran Allen (2006) Frances `Fran' Allen var oprindelig matematiker og holdt af at undervise i high school. Som kandidatstuderende sidst i 1950'erne tog hun nogle programmeringskurser. Sa
  • 52. k hun et midlertidigt job ved IBM. Mange af de teknikker, som i dag er helt gngse i compilere, skyldes hende.
  • 53. 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 bermt artikel om ALGOL 60. Han stillede det grimme sprgsmal Hvad er vrdien af x + mystik ?
  • 54. 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 bermt artikel om ALGOL 60. Han stillede det grimme sprgsmal Hvad er vrdien af x + mystik ? Det afhnger af hvilken rkkeflge vi udregner leddene i den lille sum. ALGOL60-rapporten havde ikke beskrevet det!
  • 55. Programmeringssprogs semantik The establishment of formal standards for proofs about programs [. . . ] and the proposal that the semantics of a programming language may be de
  • 56. ned independently of all processors for that language, by establishing standards of rigor for proofs about programs in the language, appears to be novel. (Floyd, 1967) Beskrivelsen af hvad et program laver, nar det bliver udfrt skal vre prcis og skal vre maskinuafhngig.
  • 57. Robert Floyd (1978) Robert Floyd
  • 58. k en bachelor-grad i fysik, men ogsa han blev suget ind i algoritmernes verden. Han endte som professor i datalogi pa Stanford uden nogen sinde at have faet en PhD-grad. Donald Knuth siger i The Art of Computer Programming . . . only
  • 59. ve really good papers about compilers had been written so far, and Bob had been the author of all
  • 60. ve.
  • 61. Robert Floyd Robert Floyd var med til at grundlgge studiet af programmeringssprogs semantik. Et af hans vigtigste bidrag var begrebet invarianter.
  • 62. Tilbage til fakultetsfunktionen En invariant er en logisk udsagn der glder efter ethvert gennemlb af en programlkke.
  • 63. Tilbage til fakultetsfunktionen En invariant er en logisk udsagn der glder efter ethvert gennemlb af en programlkke. FUNCTION FACT(N) INTEGER N,I,FACT FACT=1 DO 10 I=1,N 10 FACT=FACT*I END Det glder altid efter i gennemlb af lkken (0 i n) at FAK = i !. Hvis vi kan vise dette, ved vi at programmet faktisk beregner fakultetsfunktionen af N.
  • 64. Dana Scott (1976) Dana Scott var sammen med Christopher Strachey med til at formulere en andet vigtig matematisk teori for programmers semantik. Denne teori er baseret pa at vi kan opfatte et program som en matematisk funktion.
  • 65. Denotationel semantik Tnk pa et program som en funktion fra mngden af mulige hukommelsesindhold til mngden af mulige hukommelsesindhold. i7! 0 n7! 5 fact7! 1 i7! 5 n7! 5 fact7! 120 Nu skal vi `bare' beskrive hvilken sadan funktion hver enkelt konstruktion i et programmeringssprog beskriver.
  • 66. Robin Milner (1991) Robin Milner studerede matematik og
  • 67. loso
  • 68. i Cambridge. Efter en tid som matematiklrer i gymnasiet blev han ansat hos Ferranti. Siden arbejdede han sammen med Dana Scott, og han blev frst professor i Edinburgh, siden i Cambridge. Robin Milner vejledte mange PhD-afhandlinger, men
  • 69. k aldrig selv mere end den frste bachelor-grad.
  • 71. k Turing-prisen for I Sit arbejde om typesystemer for funktionsorienterede programmeringssprog; Milner var en af hovedmndene bag sproget ML. I Sit arbejde inden for semantik for parallelle programmer. I Sit arbejde inden for bevisassistenter.
  • 72. Fakultetsfunktionen i ML fun fak 0 = 1 | fak n = n * (fak (n-1));
  • 73. 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 - [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 -
  • 74. Kommunikerende systemer En vigtig erkendelse, som Robin Milner gjorde, er at der er mange andre interessante programmer, der ikke pnt kan beskrives som matematiske funktioner: I Mange programmer skal faktisk aldrig standse!
  • 75. Kommunikerende systemer En vigtig erkendelse, som Robin Milner gjorde, er at der er mange andre interessante programmer, der ikke pnt kan beskrives som matematiske funktioner: I Mange programmer skal faktisk aldrig standse! I Parallelle programmer bestar typisk af en samling komponenter, der kommunikerer indbyrdes.
  • 76. Kommunikerende systemer Tnk pa det kommunikerende system, der hedder Internettet. Her er et lille udsnit. Hotel Rejsebureau Flyselskab
  • 77. Leslie Lamport (2014) Dette ars prismodtager er Leslie Lamport, der har ydet store bidrag til teorien om kommunikerende parallelle systemer. Lamport er ogsa manden bag LATEX, der er en samling makroer ovenpa Knuths TEX(disse slides er lavet med brug af LATEX).
  • 78. Del IV Kan computere tnke?
  • 79. Herbert Simon og Allen Newell (1975) Herbert Simon havde oprindelig studeret statskundskab. Allen Newell var fysiker. Sammen udviklede de nogle af de frste programmer, der skulle simulere hvordan mennesker lste problemer: Logic Theorist og General Problem Solver. Et af deres vigtige bidrag var ideen om heuristikker.
  • 80. Herbert Simon og Allen Newell (1975) Herbert Simon og Allen Newell var ekstremt optimistiske! Over the Christmas holiday, Allen Newell and I invented a machine that thinks. I 1978
  • 81. k Herbert Simon Nobelprisen i konomi. Han er den eneste, der har modtaget bade en Nobelpris og en Turing-pris.
  • 82. Del V Hvordan kan computere hjlpe med at holde information hemmelig?
  • 84. Lren om at skrive beskeder, sa de ikke kan lses af uvedkommende. Dette kaldes at kryptere beskeder. En metode til kryptering kaldes et kryptosystem. Kryptanalyse Lren om at tyde beskeder, der er blevet krypteret.
  • 85. 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 Csars tid. Kryptosystemets ngle er forskydningen mellem klartekst-alfabet og cier-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 ngle er her tabellen, der forklarer hvordan hvert bogstav krypteres.
  • 86. Symmetrisk og asymmetrisk kryptering Et kryptosystem, hvor man bruger samme ngle K til at kryptere og 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 var muligt. Problemet er at nglen skal deles mellem brugerne og holdes hemmelig.
  • 87. Symmetrisk og asymmetrisk kryptering Men de amerikanske kryptologer Die og Hellman opdagede at man kan lave asymmetrisk kryptering. Her har hver bruger en oentlig ngle Kpub og en privat ngle Kpriv . Sa har vi decKpriv (encKpub (M)) = M for enhver besked M. Alle kender alle andres oentlige ngle Kpub, men kun hver enkelt bruger kender sin egen Kpriv . Det store sprgsmal er nu: Hvordan kan man lave et praktisk anvendeligt kryptosystem, der gr dette muligt og er svrt at bryde?
  • 88. Ronald Rivest, Adi Shamir og Leonard Adleman (2002) Disse tre herrer opdagede i 1976 et af det frste praktisk anvendelige asymmetriske kryptosystemer, som formodentlig er svrt at bryde. Det er baseret pa resultater fra algebraisk talteori. I dag bliver RSA-systemet brugt i nsten alle krypterede kommunikationer pa internettet.
  • 89. Del VI En, der aldrig
  • 91. Grace Hopper Grace Brewster Murray blev fdt i New York i 1906. Hun studerede matematik og
  • 92. k sin PhD i 1934. I 1930 blev hun gift og kaldte sig fra da af Grace Murray Hopper (ogsa efter hun blev skilt). I 1943 meldte hun sig til USAs ade. Langsomt steg hun i graderne, og i 1985 blev hun admiral.
  • 93. Grace Hopper Grace Murray Hopper blev ansat ved
  • 94. rmaet Eckert{Mauchly Computer Corporation, der byggede den tidlige computer UNIVAC. Hun lavede en compiler (i dag ville man snarere kalde den for en linker og loader) til UNIVAC-programmeringssproget A helt tilbage i 1951-1952.
  • 95. Grace Hopper Grace Murray Hopper var en hoveddrivkraft i udviklingen af programmeringssproget COBOL.
  • 96. Hvorfor hedder det `debugging'? Da Grace Hopper arbejdede med Mark II-computeren pa Harvard, j der et stakkels ml ind i maskinen. (Ordet `bug' er dog ogsa tidligere blevet brugt pa engelsk om en fejl.)
  • 97. Admiral Grace Hopper Grace Hopper sluttede sin militre karriere som admiral i USAs ade.
  • 98. Admiral Grace Hopper Grace Hopper sluttede sin militre karriere som admiral i USAs ade. ACM har indstiftet The Grace Murray Hopper Award som en srlig pris til dataloger under 35.
  • 99. Del VII Og sa var der ogsa . . .
  • 100. Jeg har ikke nvnt bl.a. I Tony Hoare, der udviklede den logiske teori bag invarianter og aksiomatisk semantik, I John McCarthy, der skabte programmeringssproget LISP, I Vinton Cerf og Robert Kahn, der
  • 101. k prisen for deres arbejde med Internet-protokollen TCP/IP, I Charles Thacker, der var med til at udvikle den personlige computer eller I Ole-Johan Dahl og Kristen Nygaard, to norske dataloger, der udviklede det frste objektorienterede programmeringssprog SIMULA. I . . . og mange ere.
  • 102. Hvor kan man lse mere? http://amturing.acm.org