Pro zájemce "klasický" jazyk C bývá jako vhodná učebnice
doporučovaná především kniha The C Programming Language od autorů
jazyka C a systému Unix Briana Kerninghana a Dennise Richieho. Ta
sice vyšla ve slovenském překladu v nakladatelství Alfa, ale byla
po vydání velmi rychle rozebrána. Výuková literatura k jazyku C je
poměrně vyhledávaným zbožím a díky aktivitám soukromých
vydavatelství je již dnes na trhu výběr z několika titulů z této
oblasti.
Učebnice C v podání Pavla Herouta vychází z pedagogické praxe
autora. Výklad je postaven na příkladech jazykové konstrukce
v C jsou velmi často porovnávány s obdobným Pascalu. To ostatně
vychází z tuzemské reality, kde se většina studentů seznamuje na
školách právě s Pascalem (mnohdy až příliš jednostranným
pohledem). V textu jsou také časté vysvětlivky a poznámky pod
čarou. Díky nim je čtenář upozorněn na problémové situace a snáze
pochopí význam a užití příslušných konstrukcí. Zvláště vhodné
jsou poznámky "Štábní kultura". Zde najdete rady, jak udržovat
jednotný styl zápisu zdrojových textů kvůli větší přehlednosti.
Když jsem sám začal psát vlastní programy v C a C++, hledal jsem
vhodné formální požadavky (tabelace, zápis příkazů, proměnných,
jména identifikátorů apod.) pro úpravu zdrojových textů. Pravidla
uvedená v této knize ukazují nejčastěji používanou formu mezi
profesionálními programy (soudě alespoň podle zdrojových textů,
které jsem měl možnost "číst") a doporučuji se jimi řídit.
Chyběla mi pouze doporučení pro jednotné pojmenování typů
a proměnných - například podle "maďarské notace", kterou používá
firma Microsoft ve Windows SDK a v dalších vývojářských
prostředcích.Co se týká obsahu knihy, probrány jsou všechny
podstatné partie jazyka C.
Nosným "dialektem" je norma ANSI C, na některých místech jsou
poznámky a upozornění na rozdíly mezi tímto moderním dialektem
a "klasickým" K&R C. Trochu mi scházelo upozornění na odlišnosti
v jazyce C++, i když kniha není na C++ zaměřena (a o tomto jazyce
v ní není snad ani slovo), jemné rozdíly v některých jazykových
konstrukcích se hůře vykládají odděleně. Zavedení poznámek
o jazyce C++ (například u přetypování, vyhodnocování některých
výrazů nebo v jiných odlišných partiích) by mohlo ulehčit
pochopení "jemných nuancí" C++.
Mimo jiných částí jazyka je podrobně vysvětlena práce
s ukazateli, řetězci a jedno-či vícerozměrnými poli. Těmto
partiím je věnováno značné množství místa (téměř třetina rozsahu
knihy), což je vzhledem k jejich významu správné.
V textu není věnováno žádné zvláštní místo standardním knihovnám,
ale příslušné funkce (především z oblasti práce se soubory,
alokace paměti a řetězových funkcí) jsou probrány v příslušných
kapitolách. Chyběly mi však některé další funkce standardních
knihoven, především matematické. Nejzávažnější výtku k popisované
příručce mám ohledně použité terminologii. Podle českých pravidel
skloňované varianty anglických slov, jako pointer, heap či union
"tahají za uši". Především slova pointer lze bez větších obtíží
nahradit českým výrazem ukazatel (směrník je slovakismus,
zavlečený výše zmíněným překladem knihy Programovací jazyk
C - slovensky se ukazatel řekne smerník - viz str. 146). Výjimečně
se také objevuje rozkolísanost v použití českých a anglických
termínů (zásobník - stack apod.).
Publikace je podle mne jedním z velmi dobrých studijních pramenů
k jazyku C. Má daleko k formálním definicím a teoretizujícím
popisům, obsahuje značné množství příkladů, poznatků z praxe
a vysvětlujících komentářů s velkou didaktickou hodnotou. Právě
v našich podmínkách je velmi vhodná i koncepce "výkladu přes
Pascal". Rozhodně ji doporučuji všem zájemcům o jazyk C.