Umění programování

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.

Seznam dílů 
Aktuální vydání:
 Volume 1: Fundamental Algorithms. Third Edition (Reading, Massachusetts: Addison-Wesley, 1997), xx+650pp. 
 Volume 2: Seminumerical Algorithms. Third Edition (Reading, Massachusetts: Addison-Wesley, 1997), xiv+762pp. 
 Volume 3: Sorting and Searching. Second Edition (Reading, Massachusetts: Addison-Wesley, 1998), xiv+780pp.+foldout. 
 Volume 4A: Combinatorial Algorithms, Part 1. First Edition (Reading, Massachusetts: Addison-Wesley, 2011), xv+883pp. 
 The Art of Computer Programming, Volumes 1-4A Boxed Set 3rd Edition (Reading, Massachusetts: Addison-Wesley, 2011), 3168pp. 
 Volume 4, Fascicle 5: Mathematical Preliminaries Redux; Backtracking; Dancing Links. (Addison-Wesley, 2019), xiii+382pp. 
 Volume 4, Fascicle 6: Satisfiability. (Addison-Wesley, 2015), xiii+310pp. 

Fascikly:
 Volume 1, Fascicle 1: MMIX – A RISC Computer for the New Millennium. (Addison-Wesley, February 14, 2005)  (ve čtvrtém vydání bude obsah začleněn do vlastního prvního svazku)
 Volume 4, Fascicle 0: Boolean basics
 Volume 4, Fascicle 1: Bitwise tricks and techniques
 Volume 4, Fascicle 2: Generating All Tuples and Permutations. (Addison-Wesley, February 14, 2005) v+127pp, 
 Volume 4, Fascicle 3: Generating All Combinations and Partitions. (Addison-Wesley, July 26, 2005) vi+150pp, 
 Volume 4, Fascicle 4: Generating All Trees: History of Combinatorial Generation. (Addison-Wesley, February 6, 2006) vi+120pp, 

Český překlad:
 Umění programování. 1. díl: Základní algoritmy (Computer Press, září 2008), 672pp,  
 Umění programování. 2. díl: Seminumerické algoritmy (Computer Press, únor 2010), 776pp,

Reference

Externí odkazy 
 Stránka o knize na domácích stránkách autora  – obsah, seznam vydání a překladů, errata apod. (anglicky)
 American Scientist: 100 or so Books that shaped a Century of Science  (anglicky)

Knihy z roku 1968
Knihy z roku 1969
Knihy z roku 1973
Knihy z roku 1981
Literatura o programování