Donald Ervin Knuth

Donald Knuth
Donald Knuth
Donald Knuth
Narození10. ledna 1938 (86 let)
Milwaukee, Wisconsin, USA
Národnostamerická
Alma materMilwaukee Lutheran High School (do 1956)
Case Western Reserve University (do 1960)
Kalifornský technologický institut (1960–1963)
PracovištěBurroughs Corporation (1960–1968)
Institute for Defense Analyses (1968–1969)
Stanfordova univerzita
Kalifornský technologický institut
OboryInformatika,Matematika
Známý díkyUmění programování, TeX, KMP, LR analýza, literární programování
OceněníTuringova cena (1974), Národní vyznamenání za vědu (1979)
Webwww-cs-faculty.stanford.edu/~knuth
Některá data mohou pocházet z datové položky.

Donald Ervin Knuth (* 10. ledna 1938 Milwaukee) je přední informatik a emeritní profesor na Stanfordově univerzitě (plným titulem „Professor Emeritus of The Art of Computer Programming“).

Knuth je autorem mnohasvazkového díla Umění programování, jedné z nejrespektovanějších publikací v oboru programování. Je průkopníkem oboru matematické analýzy algoritmů, ale významně ovlivnil i další informatické obory, například tvorbu překladačů nebo zpracování textu. Také vytvořil typografické systémy TeX a Metafont.

Je držitelem rozličných ocenění, včetně Turingovy ceny udělované ACM (1974) nebo Národního vyznamenání za vědu. V roce 2003 byl zvolen členem britské Královské vědecké společnosti a od roku 1996 je také čestným doktorem brněnské Masarykovy univerzity.[1]

Žije ve Stanfordu se svou ženou Jill.

Život

Mládí

Donald Ervin Knuth se narodil roku 1938 v Milwaukee v americkém státě Wisconsin. Prvním vzorem mu byl jeho otec, který vyučoval účetnictví na místní luteránské střední škole a malému Donaldovi předal zápal pro vzdělání a také pro hudbu.

Svoji výjimečnost Knuth poprvé projevil v osmé třídě, když vyhrál soutěž pořádanou společností na sladkosti Ziegler: úkolem bylo vytvořit co nejvíce slov z písmen textu „Ziegler's Giant Bar” a zatímco referenční řešení obsahovalo 2500 slov, Donald vymyslel slov 4500, a to bez použití apostrofu. Za jasnou výhru získal televizní přijímač a také zásobu cukrovinek po zbytek školní docházky.

I přesto ale svou další budoucnost neviděl v matematice či fyzice, ale v hudbě, které na střední škole věnoval téměř veškerý volný čas. Jeho názor změnila až nabídka stipendia pro studium fyziky od Case Institute of Technology v Ohiu. Zde Knuth objevil svůj zápal pro matematiku, která mu na střední škole připadala nudná, a na doporučení svého učitele matematické analýzy změnil obor z fyziky na matematiku.

V roce 1956 se Donald poprvé setkal s počítačem – sálovým IBM 650, což byl první sériově vyráběný počítač na světě. Počítači ihned propadl – celou noc se z manuálu učil základy programování a hned také vymýšlel, jak uvedené příklady zlepšit. První jeho program faktorizoval čísla, další hrál pro změnu piškvorky a další zas analyzoval výkonnost jednotlivých hráčů školního basketbalového družstva.

Díky výjimečným výsledkům mu Case Institute v roce 1960 jako vůbec prvnímu studentovi v historii udělil po dokončení bakalářského studia i magisterský titul v oboru matematika. Poté odešel studovat na California Institute of Technology, kde o tři roky později získal titul doktorský za disertaci Finite semifields and projective planes. Mezi další jeho práce z tohoto období pak patří spočtení eulerova čísla na 1271 desetinných míst a článek o vyhodnocování polynomů počítačem. Ještě během studií, v roce 1961, se Donald Knuth oženil s Nancy Jill Carterovou, s kterou má dvě děti Johna Martina (*1965) a Jennifer Sierru (*1966).

Umění programování

Donald Knuth a Steve Wozniak v roce 2011

Na Caltech zůstal i po dokončení postgraduálního studia jako odborný asistent. Již od roku 1960 Knuth rovněž pracoval jako konzultant pro Burroughs Corporation. Zabýval se zde softwarem i hardwarem a potkal zde mnoho inspirativních lidí, zejména pak Edsgera Dijkstru, který právě v oné době dokončoval spolu s J. A. Zonneveldem první implementaci překladače pro Algol 60.

Na svém celoživotním díle, monografii Umění programování (anglicky The Art of Computer Programming), začal pracovat v roce 1962, tedy ještě coby doktorand. Původně se mělo jednat o publikaci o překladačích pro nakladatelství Addison-Wesley. Když ale text do roku 1966 narostl do délky tří tisíc stran rukopisu, bylo zřejmé, že vzniká něco mnohem většího. Nakonec se s nakladatelstvím dohodl na sepsání sedmi svazků, jež by pokrývaly nejdůležitější znalosti z informatiky a algoritmizace, spolu s jejich detailní matematickou analýzou.[2]

První díl o základních algoritmech vyšel v roce 1968, druhý o generování náhodných čísel a aritmetických algoritmech o rok později a třetí o řazení a vyhledávání v roce 1973. První svazek čtvrtého dílu o kombinatorických metodách vyšel až roku 2011. Čtvrtý díl je rozdělen do čtyř svazků; jednotlivé části postupně vycházely ve formě tzv. „fasciklů”, tedy pracovních verzí, ke kterým se může vyjádřit odborná veřejnost. Pátý díl bude věnován algoritmům syntaktické analýzy a Knuth jeho dokončení plánuje na rok 2020. Po jeho dokončení se vrátí k prvním třem dílům, které zaktualizuje – doplní do nich témata, která v době psaní prvních svazků ještě nebyla prozkoumána. Šestý díl by měl pojednávat o teorii bezkontextových jazyků a finální sedmý by se měl věnovat překladačům.

I přes nedokončenost je ale Umění programování, kterému se často přezdívá „programátorská bible”, vysoce ceněno. Například americký vědecký časopis American Scientist jej zařadil mezi sto nejvýznamnějších vědeckých publikací 20. století. Vznikly také překlady do řady cizích jazyků, přičemž v češtině vydalo nakladatelství Computer Press zatím první dva díly.

Zajímavostí pak je, že ukázky kódu v knize jsou uvedeny v jazyce symbolických adres hypotetického počítače MIX (respektive jeho RISC verze MMIX v pozdějších vydáních). K architektuře MIX vzniklo několik emulátorů (například GNU MDK).

TeX

Dlouhá pauza po vydání třetího svazku Umění programování byla způsobena především Knuthovou nespokojeností s tehdejší sazbou matematické literatury. Systém pro počítačovou sazbu, který nazval TeX, vyvíjí od roku 1977. Kromě TeXu vytvořil také systém pro vytváření písem za použití matematiky Metafont. O těchto systémech také napsal čtyřsvazkovou sérii knih Computers and Typesetting, která spolu s faktem, že oba systémy nabídl zdarma k používání, pomohla širokému rozšíření systémů, především pak TeXu.

Jeden z Knuthových šeků na 2,56 $

Že má Knuth smysl pro humor, můžeme vypozorovat například z číslování verzí obou systémů – místo tradičního zvyšování čísla verze, se označení verze TeXu prodlužuje vždy o další číslici rozvoje Ludolfova čísla a verze Metafontu se pro změnu blíží k číslu Eulerovu. Knuthovým přáním je, aby se po jeho smrti systémy již dále nevyvíjely, ale zůstaly ve finálních verzích s označením π, respektive e. Dalším žertíkem je pak vyplácení 2,56 $ za nalezení typografické chyby v jeho libovolné publikaci. Tato částka nebyla vybrána náhodně – 256 centů Knuth označuje za jeden „hexadecimální dolar”.

Odchod na Stanford a další projekty

Ještě před odchodem z California Institute of Technology na Stanford přispěl Donald Knuth v polovině šedesátých let k rozvoji překladačů objevem LR analýzy. Jedná se speciální deterministickou verzi syntaktické analýzy zdola nahoru. Také se podílel na algoritmu pro vyvozování důsledků z axiomů a ověřování důkazů v axiomatických systémech, který vytvořil v roce 1966 se svým studentem Peterem Bendixem, a který dnes nese jména obou autorů – Knuthův-Bendixův algoritmus.

Knuth odešel na Stanford ještě před začátkem prací na TeXu, v roce 1968, a s touto kalifornskou univerzitou spojil zbytek své kariéry. Se studentem Vaughanem Prattem zde v polovině sedmdesátých let vytvořil jednoduchý, avšak efektivní algoritmus pro hledání výskytu podřetězce v řetězci. Nezávisle na nich totožný postup objevil i James H. Morris, a tak algoritmus dnes známe pod názvem Knuthův-Morrisův-Prattův algoritmus (KMP). Na Stanfordu coby profesor teoretické informatiky vyučoval především kurzy o matematice a datových strukturách. Své přednášky o matematice jakožto základu informatiky, shrnul v knize Concrete Mathematics: A Foundation for Computer Science, kterou napsal spolu s Ronaldem Grahamem a Orenem Patashnikem. Legendární byl i jeho řešitelský seminář A Programming and Problem-Solving-Seminar. Od roku 1993 však pořádá přednášky již jen velmi zřídka, a svůj čas věnuje práci na Umění programování.

Knuth také vymyslel nový přístup k programování, který nazval literární programování (anglicky literate programming), ve kterém je na prvním místě dobrá čitelnost a srozumitelnost pro čtenáře kódu. Toho je dosaženo množstvím komentářů v přirozeném jazyce, jež převažují nad výkonným kódem. Pro toto paradigma také naprogramoval systémy WEB a CWEB, ale princip literárního programování můžeme nalézt například i v programovacím jazyku Haskell.

Knuth zasáhl i do jiných oblastí než je programování: Například během týdenní dovolené v Oslu napsal „matematickou novelu” Surreal Numbers: How two ex-students turned on to pure mathematics and found total happiness, která pojednává o dvou bývalých studentech, kteří studují Conwayův číselný systém – tedy systém, který Knuth v té době rovněž zkoumal. Kniha nepojednává tolik o samotném číselném systému, jako spíše o způsobu jak k takovému problému při bádání přistupovat. Jde o první beletrii, ve které byly uveřejněny výsledky výzkumu dříve, než se objevily v odborném článku.

Ve volném čase se Knuth věnuje hudbě – především hraje na varhany, které si sám navrhl.

Stejně jako jeho rodiče je Donald Knuth luteránem. Systematický přístup vědce spojil s vírou v díle 3:16 Bible Texts Illuminated, ve kterém analyzuje šestnáctý verš třetí kapitoly každé biblické knihy. O víře píše i v knize Things a computer Scientist rarely talks about.

V roce 2006 porazil rakovinu prostaty.

Ocenění

Knuth za svou práci získal řadu ocenění. V roce 1971 získal od ACM Cenu Grace Murray Hopperové, dále mu byla udělena například prestižní Turingova cena (1974) a z rukou prezidenta Cartera převzal Národní vyznamenání za vědu (1979). Také získal například Kyotskou cenu (1996) nebo Medaili Johna von Neumanna (1995). Donald Knuth je členem britské Královské společnosti, francouzské akademie věd nebo Americké matematické společnosti.

V roce 1996 se stal čestným doktorem brněnské Masarykovy univerzity.[1]

Odkazy

Reference

  1. a b ZLATUŠKA, Jiří. Donald E. Knuth doktorem honoris causa Masarykovy univerzity. Zpravodaj ÚVT MU. 1996, roč. VI., čís. 3, s. 12. Dostupné online. ISSN 1212-0901.  Archivováno 27. 1. 2013 na Wayback Machine.
  2. O'CONNOR; ROBERTSON. Donald Ervin Knuth’s Biography [online]. The MacTutor History of Mathematics archive of University of St Andrews Scotland, 2009 [cit. 2013-06-05]. Dostupné online. (anglicky) 

Literatura

  • Sedgewick, R.: Algorithms in C. Reading, Mass: Addison-Wesley, 1990, ISBN 0-201-51425-7.
  • Shasha, D.; Lazere, C.: Out of Their Minds : The Lives and Discoveries of 15 Great Computer Scientists. New York, NY: Copernicus, 1998, ISBN 978-0-387-98269-4.
  • Slater, R.: Portraits in Silicon. Cambridge, Mass: MIT Press, 1987, ISBN 0-262-19262-4

Související články

Externí odkazy

Média použitá na této stránce

Donald Ervin Knuth (cropped).jpg
Autor: Alex Handy, Licence: CC BY-SA 2.0
Donald Knuth at the opening event of Computer History Museum's Revolution exhibition
Knuth-check2.png
One of Donald Knuth's reward checks. Note that the machine-readable numbers at the bottom of the check have been randomly swapped or modified, so that no personal information about Don Knuth's personal bank account is leaked through this image.
Donald Knuth, Steve Wozniak, CHM 2011.jpg
Autor: vonguard from Oakland, Nmibia, Licence: CC BY-SA 2.0
Donald Knuth (left) and Steve Wozniak (right) at the opening event of Computer History Museum's Revolution exhibition