UNF-foredrag om Turing-prisen

  • View
    704

  • Download
    4

  • Category

    Science

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