Umění programování, 1. díl – Základní algoritmy
Autoři
Více o knize
Umění programování (anglicky The Art of Computer Programming, běžně zkracováno na TAOCP) je mnohasvazková odborná monografie amerického počítačového vědce Donalda Knutha. Obsahuje nejdůležitější znalosti z informatiky, popis základních algoritmů, jejich matematickou analýzu atd. Toto dílo je všeobecně považováno za základní příručku oboru; americký vědecký časopis American Scientist tuto zařadil do seznamu 100 nejdůležitějších „knih o vědě“ (zahrnuje i čistě popularizační díla, životopisy, několik románů ap.) 20. století; TAOCP je mezi dvanácti tituly v kategorii monografií o „fyzikálních vědách“, čímž se Knuth zařadil po bok osobností jako např. Paul Dirac či Albert Einstein. Kniha ještě stále není dokončena, v současné době existují první tři svazky, na dalších autor pracuje. Původní autorův plán byl vydat celé dílo jako jeden svazek o deseti kapitolách, brzy však zjistil, že do jedné knihy se nevejde takové množství informací, které by tam chtěl uvést. Existující svazky se zabývají základními algoritmy (první díl), generováním náhodných čísel a aritmetickými algoritmy (druhý díl) a řazením a vyhledáváním (třetí díl). V současné době autor pracuje na čtvrtém dílu (týká se kombinatorických metod), který bude zřejmě rozdělen do tří nebo čtyř svazků (procházení a backtracking, grafy a sítě, optimalizace a rekurze). Část tohoto dílu již vyšla ve formě „fasciklů“, které umožňují odborné veřejnosti upozornit na případné chyby. Po dokončení celého čtvrtého dílu má kolem roku 2015 následovat díl pátý, věnovaný syntaktickým algoritmům. Dosud není jasné, zda by měla monografie pokračovat ještě dalšími dvěma již specializovanějšími díly, týkajícími se formálních jazyků. V roce 2008 vyšel první díl v českém překladu, v roce 2010 následovalo vydání českého překladu dílu druhého. V průběhu práce na TAOCP Donald Knuth zjistil, že mu nevyhovuje kvalita dostupných typografických prostředků pro sazbu matematických výrazů. Z toho důvodu vytvořil počítačový typografický systém TeX, ve kterém jsou dnešní vydání knihy připravena. U všech algoritmů v knize je uvedena implementace v jazyce symbolických adres fiktivního počítače nazvaného MIX (v novějším vydání pak jeho aktualizované RISC verze nazvané MMIX). Z výukových důvodů vzniklo mnoho emulátorů tohoto počítače (např. GNU MDK), které umožňují zkoušet tyto programy a řešit cvičení uvedená v knize.