Kompilátor (Compiler)

Kompilátor je klíčovým nástrojem v procesu vývoje softwaru. Funguje jako „překladatel“, který transformuje lidsky čitelný text (zdrojový kód) do binární podoby (instrukcí procesoru). Na rozdíl od interpretů (např. v Pythonu), které kód vykonávají řádek po řádku během spuštění, kompilátor zpracuje celý program najednou a vytvoří samostatný spustitelný soubor (např. .exe v Windows).

Fáze kompilace

Proces kompilace je složitý a obvykle probíhá v několika fázích:

1. Lexikální analýza (Lexing)

Kompilátor rozloží text kódu na základní jednotky zvané tokeny (klíčová slova, názvy proměnných, operátory). Odstraní také komentáře a bílé znaky.

2. Syntaktická analýza (Parsing)

Kompilátor kontroluje, zda tokeny tvoří platné věty podle pravidel jazyka. Výsledkem je vnitřní stromová struktura zvaná AST (Abstract Syntax Tree). Zde se odhalí většina syntaktických chyb.

3. Sémantická analýza

Kontroluje se logický význam kódu. Například zda se programátor nepokouší sčítat textový řetězec s číslem nebo používat neexistující proměnnou.

4. Optimalizace kódu

Kompilátor se snaží kód vylepšit tak, aby byl výsledný program rychlejší a zabíral méně paměti. Odstraňuje například nepoužívané části kódu nebo zjednodušuje matematické výpočty.

5. Generování kódu

Závěrečná fáze, kdy se vnitřní reprezentace programu převede do cílového formátu – buď přímo do strojového kódu (binární soubor), nebo do objektového kódu, který následně spojí linker.

Srovnání: Kompilátor vs. Interpret

Vlastnost	Kompilátor (např. C++)	Interpret (např. Python)
Rychlost běhu	Velmi vysoká (kód je optimalizován).	Pomalejší (překládá se při běhu).
Odhalení chyb	Většina chyb se zjistí před spuštěním.	Chyby se často projeví až při spuštění programu.
Distribuce	Uživatel dostane hotový soubor (.exe).	Uživatel musí mít nainstalovaný interpret.
Přenositelnost	Nutno kompilovat pro každý OS zvlášť.	Kód běží všude, kde je interpret.

Typy kompilátorů

Nativní kompilátor: Vytváří kód pro stejnou platformu, na které sám běží (např. kompiluji na Windows pro Windows).

Křížový kompilátor (Cross-compiler): Běží na jedné platformě, ale vytváří kód pro jinou (např. kompiluji na PC software pro mikročip v pračce).

JIT Kompilátor (Just-In-Time): Hybridní přístup používaný v Javě nebo C#. Kód se nejprve přeloží do mezistupně (bytecode) a do strojového kódu se kompiluje až ve chvíli, kdy je potřeba jej spustit.

Slavné kompilátory

GCC (GNU Compiler Collection): Klíčový projekt pro open-source a Linux. Podporuje mnoho jazyků (C, C++, Fortran).

Clang/LLVM: Moderní kompilátor používaný firmami jako Apple či Google. Je známý výbornými chybovými hlášeními a rychlostí.

MSVC (Microsoft Visual C++): Standardní kompilátor pro vývoj aplikací v operačním systému Windows.

Související pojmy: Zdrojový kód, Strojový kód, Linker, Bug, Java, Interpret, Debugging.