Obsah
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.
