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).
Proces kompilace je složitý a obvykle probíhá v několika fázích:
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.
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.
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.
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.
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.
| 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. |
Související pojmy: Zdrojový kód, Strojový kód, Linker, Bug, Java, Interpret, Debugging.