Compiler (Překladač)

Compiler je klíčový nástroj vývojáře, který slouží jako „překladatel“ mezi lidským zápisem logiky a fyzickým světem jedniček a nul. Na rozdíl od interpretu, který kód čte a vykonává řádek po řádku (jako Python), kompilátor zpracuje celý program najednou a vytvoří z něj samostatný spustitelný soubor (např. .exe v systému Windows).

Fáze procesu kompilace

Moderní kompilátory jsou extrémně složité systémy, které pracují v několika logických krocích:

1. Front-end (Analýza)

Zde se kontroluje správnost kódu:

Lexikální analýza: Rozbití textu na základní stavební kameny (tokeny).

Syntaktická analýza: Kontrola gramatiky jazyka (zda nechybí středník, závorka apod.). Vytváří se Abstraktní syntaktický strom (AST).

Sémantická analýza: Kontrola logiky (např. zda se nepokoušíte sečíst číslo s textem).

2. Middle-end (Optimalizace)

Kompilátor se snaží kód vylepšit, aby byl co nejrychlejší. Odstraňuje zbytečné části kódu, zkracuje matematické operace nebo optimalizuje cykly.

3. Back-end (Generování kódu)

Výsledná logika se přeloží do instrukcí pro konkrétní procesor (např. x86 nebo ARM) a vytvoří se výsledný binární soubor.

Proč kompilovat? (Výhody a nevýhody)

Vlastnost	Kompilované jazyky (C++, Rust)	Interpretované jazyky (Python, JS)
Rychlost	Velmi vysoká (nativní kód).	Nižší (nutnost překladu za běhu).
Odhalení chyb	Většina chyb se najde už při kompilaci.	Chyby se často projeví až při spuštění programu.
Přenostitelnost	Musí se kompilovat pro každý OS zvlášť.	Kód běží všude, kde je nainstalován interpret.
Vývoj	Pomalejší (čekání na dokončení kompilace).	Rychlejší (okamžité spuštění změn).

Klíčové typy kompilátorů

Native Compiler: Vytváří kód pro stejný systém, na kterém sám běží (např. kompilace na Windows pro Windows).

Cross-Compiler: Vytváří kód pro jiný systém (např. na počítači zkompilujete aplikaci pro mobilní telefon).

JIT (Just-In-Time) Compiler: Kompiluje kód „za letu“ těsně předtím, než se má spustit (používá Java nebo JavaScript v prohlížeči).

Populární kompilátory

GCC (GNU Compiler Collection): Standard pro Linux a open-source svět.

Clang (LLVM): Moderní kompilátor používaný společností Apple a pro jazyk Rust.

MSVC: Kompilátor od Microsoftu integrovaný ve Visual Studiu.

Související pojmy: C++, Strojový kód, CPU, Assembler, Java, Python, LLVM.