Informatisk julekalender: Luke 17


fredag 17. desember 2010 Julekalender

knuth

Nei, dette er ikke skomaker Andersen – dagens hyllest går til den berømte Donald Ervin Knuth. Han er mer eller mindre opphavsmannen bak analysen av algoritmer. Han utviklet matematiske teknikker for grundig kompleksitetsanalyse, og populariserte asymptotisk notasjon (også kalt Big-O notasjon) som alle informatikere må lære på Universitetet.

Knuths livsverk er bok-serien The Art of Computer Programming, som er den ultimate bibelen innen læren om algoritmer. Bruken av ordet “art”, eller kunst, er ikke tilfeldig. Her forklarer Knuth hva som er forskjellen mellom vitenskap og kunst, og deretter hvorfor programmering er en kunst:

“Science is knowledge which we understand so well that we can teach it to a computer; and if we don't fully understand something, it is an art to deal with it.”

“Computer programming is an art, because it applies accumulated knowledge to the world, because it requires skill and ingenuity, and especially because it produces objects of beauty. A programmer who subconsciously views himself as an artist will enjoy what he does and will do it better.”

Knuth er også utvikleren bak typografisystemet TeX, og det relaterte font-definisjonsspråket/systemet METAFONT. Han implementerte disse for å kunne skrive bøkene sine enklere. Knuth er kjent for å ha mye humor, og det kan man blant annet se i versjonsnumrene på disse produktene. Første versjon av TeX var nummer 0, og det var en normal stigning opp til 3. Deretter kom 3.1, etterfulgt av 3.14, så 3.141 osv – regner med du ser mønsteret.

Det jeg synes er mest interessant blant Knuths mange bidrag til faget er det han kalte litterær programmering. Ideen er at kilekoden til et program skal kunne leses som en historie fra topp til bunn. Det skal designes slik at det gir leseren all den informasjonen han trenger i riktig rekkefølge. Man skal altså legge mye større vekt på leseren, gjerne på bekostning av å gjøre jobben enkel for kompilatoren.

TeX er skrevet i denne stilen, og flere sier dette er det vakreste koden som noen gang er skrevet. TeX er skrevet i programmeringsspråket WEB, som er en blanding av TeX-markup og Pascal, designet spesifikt for denne oppgaven. Kildekoden kan så konverteres til f.eks. PDF, og den versjonen refereres til som TeX: The Program.


comments powered by Disqus