Umění programování

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledá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ů[editovat | editovat zdroj]

Aktuální vydání:

  • Volume 1: Fundamental Algorithms. Third Edition (Reading, Massachusetts: Addison-Wesley, 1997), xx+650pp. ISBN 0-201-89683-4
  • Volume 2: Seminumerical Algorithms. Third Edition (Reading, Massachusetts: Addison-Wesley, 1997), xiv+762pp. ISBN 0-201-89684-2
  • Volume 3: Sorting and Searching. Second Edition (Reading, Massachusetts: Addison-Wesley, 1998), xiv+780pp.+foldout. ISBN 0-201-89685-0
  • Volume 4A: Combinatorial Algorithms, Part 1. First Edition (Reading, Massachusetts: Addison-Wesley, 2011), xv+883pp. ISBN 0-201-03804-8
  • The Art of Computer Programming, Volumes 1-4A Boxed Set 3rd Edition (Reading, Massachusetts: Addison-Wesley, 2011), 3168pp. ISBN 0-321-75104-3
  • Volume 4B, Pre-fascicle 5A: Mathematical Preliminaries Redux
  • Volume 4B, Pre-fascicle 6A: A (Very Incomplete) Draft of Section 7.2.2.2: Satisfiability

Fascikly:

  • Volume 1, Fascicle 1: MMIX – A RISC Computer for the New Millennium. (Addison-Wesley, February 14, 2005) ISBN 0-201-85392-2 (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, ISBN 0-201-85393-0
  • Volume 4, Fascicle 3: Generating All Combinations and Partitions. (Addison-Wesley, July 26, 2005) vi+150pp, ISBN 0-201-85394-9
  • Volume 4, Fascicle 4: Generating All Trees: History of Combinatorial Generation. (Addison-Wesley, February 6, 2006) vi+120pp, ISBN 0-321-33570-8

Český překlad:

Reference[editovat | editovat zdroj]

  1. http://knihy.cpress.cz/knihy/cely-knizni-web/sleva-46-55/umeni-programovani-zakladni-algoritmy/
  2. http://knihy.cpress.cz/knihy/pocitacova-literatura/programovani/umeni-programovani-2-dil-seminumericke-algoritmy/

Externí odkazy[editovat | editovat zdroj]