Practical C Programming, 3rd Edition by Steve Oualline

Jak funguje jazyk C

C je navržen jako most mezi programátorem a surovým počítačem. Jeho smyslem je umožnit programátorovi uspořádat program tak, aby mu byl snadno srozumitelný. Překladač pak jazyk přeloží do podoby, kterou může stroj použít.

Počítačové programy se skládají ze dvou hlavních částí: dat a instrukcí. Počítač těmto dvěma částem ukládá jen malou nebo žádnou organizaci. Ostatně počítače jsou navrženy tak, aby byly co nejobecnější. Programátor by měl počítači vnutit svou organizaci, ne naopak.

Data v počítači jsou uložena jako řada bajtů. Jazyk C tyto bajty uspořádává do užitečných dat. Deklarace dat používá programátor k popisu informací, se kterými pracuje. Například:

int total; /* Total number accounts */

říká jazyku C, že chceme použít část paměti počítače k uložení celého čísla s názvem total. Necháme kompilátor rozhodnout, které konkrétní bajty paměti použije; toto rozhodnutí je drobný účetní detail, kterým se nechceme zabývat.

Naše proměnná total je jednoduchá proměnná. Může obsahovat pouze jedno celé číslo a popisovat pouze jeden celkový součet. Řadu celých čísel můžeme uspořádat do pole takto:

int balance; /* Balance (in cents) for all 100 accounts */

O detaily vnucování této organizace paměti počítače se opět postará jazyk C. Konečně existují i složitější datové typy. Například obdélník může mít šířku, výšku, barvu a vzor výplně. Jazyk C nám umožňuje uspořádat tyto čtyři položky do jedné skupiny zvané struktura.

struct rectangle { int width; /* Width of rectangle in pixels */ int height; /* Height of rectangle in pixels */ color_type color; /* Color of the rectangle */ fill_type fill; /* Fill pattern */};

Jde o to, že struktury umožňují programátorovi uspořádat data podle jeho potřeb bez ohledu na to, jak jednoduchá nebo složitá tato data jsou. Překlad tohoto popisu dat do podoby, kterou může počítač použít, je úkolem překladače, nikoli programátora.

Data jsou však pouze jednou částí programu. Potřebujeme také instrukce. Pokud jde o počítač, ten o rozložení instrukcí nic neví. Ví, co dělá pro aktuální instrukci a kde má dostat další, ale nic víc.

C je vysokoúrovňový jazyk. Umožňuje nám napsat vysokoúrovňový příkaz typu:

area = (base * height) / 2.0; /* Compute area of triangle */

Kompilátor tento příkaz přeloží do řady kryptických nízkoúrovňových strojových instrukcí. Takovému příkazu se říká přiřazovací příkaz. Používá se k výpočtu a uložení hodnoty aritmetického výrazu.

Můžeme také použít řídicí příkazy k řízení pořadí zpracování. Příkazy jako if a switch umožňují počítači provádět jednoduchá rozhodnutí. Příkazy lze opakovat stále dokola pomocí smyčkových příkazů, jako jsou while a for.

Skupiny příkazů lze obalovat a vytvářet tak funkce. Takto stačí napsat obecnou funkci pro vykreslení obdélníku jen jednou a pak ji můžeme znovu použít, kdykoli chceme vykreslit nový obdélník.

C poskytuje programu bohatou sadu standardních funkcí, které provádějí běžné funkce, jako je vyhledávání, třídění, vstup a výstup.

Sadu příbuzných funkcí lze seskupit do jednoho zdrojového souboru. Mnoho zdrojových souborů lze zkompilovat a spojit dohromady a vytvořit tak program.

Jedním z hlavních cílů jazyka C je uspořádat instrukce do opakovaně použitelných komponent. Koneckonců můžete psát programy mnohem rychleji, pokud si můžete většinu kódu „vypůjčit“ odjinud. Skupiny opakovaně použitelných funkcí lze spojit do knihovny. Tímto způsobem, když potřebujete například třídicí rutinu, můžete vzít standardní funkci qsort z knihovny a propojit ji do svého programu.

Datové deklarace, struktury a řídicí příkazy a další prvky jazyka C nejsou určeny pro počítač. Počítač nedokáže rozlišit mezi milionem náhodných bajtů a skutečným programem. Všechny prvky jazyka C jsou navrženy tak, aby umožnily programátorovi jasně vyjádřit a uspořádat své myšlenky způsobem přizpůsobeným jemu, nikoliv počítači.

Organizace je klíčem k psaní dobrých programů. Například v této knize víte, že obsah je vpředu a rejstřík vzadu. Tuto strukturu používáme proto, že knihy jsou takto uspořádány. Organizace usnadňuje používání této knihy.

Jazyk C umožňuje organizovat programy pomocí jednoduché, ale výkonné syntaxe. Tato kniha jde nad rámec syntaxe jazyka C a naučí vás pravidla stylu, která vám umožní vytvářet vysoce čitelné a spolehlivé programy. Kombinací výkonné syntaxe a dobrého programovacího stylu můžete vytvářet výkonné programy, které provádějí složité a úžasné operace, ale zároveň jsou uspořádány tak, abyste jim snadno porozuměli, až přijde čas na změnu.

Leave a Reply