Na náš trh se konečně dostal překlad prvního dílu nejznámější knihy o algoritmech, jaká byla kdy napsána. Neuškodí, když začneme několika slovy o její historii.
Tuhle knihu začal D. E. Knuth psát už někdy v 60. letech minulého století a v prvním dílu prvního vydání slíbil, že napíše sedm dílů. Jenže po napsání prvních tří zjistil, že mnohé věci lze vyložit lépe, že se mezitím objevily nové algoritmy atd., a tak místo psaní dalších dílů několikrát přepracoval první tři. Navíc právě na příkladu téhle knihy zjistil, jak obtížná je sazba matematických vzorců, a tak vyvinul sázecí program TeX. Teprve koncem devadesátých let se nechal předčasně penzionovat, aby mohl své dílo o algoritmech dokončit. Dodnes vyšly první čtyři díly.
Podívejme se nyní na obsah prvního dílu, jehož český překlad přišel letos v září na pulty knihkupectví. Autor začíná u matematických základů – projde pojmy a nástroje, které bude potřebovat, jako je matematická indukce, vlastnosti logaritmů, vytvořující funkce nebo asymptotické chování funkcí. Ukáže také, co se skrývá za pojmem „analýza algoritmu“.
Aby nebyl při vysvětlování implementace a při analýze složitosti algoritmů vázán na konkrétní architekturu procesoru, zavede abstraktní počítač MIX a asembler pro něj.
Pak projde základní dynamické datové struktury – seznam a strom, ukáže jejich vlastnosti, implementaci a algoritmy pro práci s nimi. Nakonec zmíní i další dynamické datové struktury založené na propojení pomocí ukazatelů. V dodatcích najdeme přehled označení, přehled instrukcí počítače MIX a tabulky matematických konstant.
Za zmínku stojí i kvalita překladu. Když jsem tuto knihu bral poprvé do rukou, bál jsem se nejhoršího, jak mne to naučily zkušenosti s mnoha českými překlady různých zahraničních publikací. Výsledek je ale přijatelný, i když si nedovolím tvrdit, že dobrý. Ne vždy se autoři trefili do vžité terminologie: Já jsem od vysoké školy vždy slýchal o spojových seznamech, propojený seznam je pro mne novinkou; v klasických matematických dílech jsem nikdy neviděl rejstřík notací, vždy jen seznam označení atd. Také slovo „asembler“ bylo v pravidlech českého pravopisu s jedním „s“ už v sedmdesátých letech, takže psát to v roce 2008 se dvěma „s“ mi připadá jako staromilství nejvyššího stupně. (Možná jde o to, co  Literární noviny v roce 68 nazvaly vlezizmus – od oblíbeného obratu vlézt komusi kamsi: Oni to tak přece píšou, že?)
Vraťme se ale k Umění programování. Komu je tato kniha určena? Rozhodně ne programátorům, kteří chtějí strávit život „prgáním“ a víc je nezajímá. Nehodí se ani pro čtenáře, kteří mají fobii z matematiky, kteří když uvidí vzorec, vypnou mozek a prohlásí, že to je složité. Na druhé straně ji ocení jak učitelé nebo lektoři, tak samozřejmě také studenti, kteří se věnují některému z odvětví informatiky. A samozřejmě všichni, kteří se nechtějí spokojit s povrchním pohledem na věc a chtějí proniknout do hloubky.
Není to jednoduché nebo odpočinkové čtení. I když ke zvládnutí stačí ve skutečnosti středoškolská matematika, protože všechna další potřebná tvrzení autor v knize odvodí nebo je nechá odvodit čtenáři jako cvičení, musí čtenář nad tím, co čte, přemýšlet, chce-li věcem opravdu porozumět – a nejde jen o matematická odvození složitosti algoritmů, ale i o implementaci těchto algoritmů v asembleru pro MIX.
Na druhé straně je to čtení, ve kterém se čtenář naučí nad algoritmy přemýšlet, vidět souvislosti a chápat, jak řešit podobné problémy.
Jsem rád, že nakladatelství Computer Press sebralo odvahu a tuto knihu přeložilo a vydalo.

Miroslav Virius