Překladač
Překladač je program, který překládá programy z jednoho programovací jazyka do jiného. Překladač tedy přečte zdrojový program napsaný v zdrojovém jazyce přeloží ho do ekvivalentního programu (cílový program), který je však napsaný v jiném (cílovém) jazyce.
Překladače využívají i vyšší programovací jazyky jako Prolog, Lips, apod. Překladače se také uplatnily všude tam, kde je třeba pochopit význam textu (semantická analýza). Například strukturované editory, automatické doplňovače kódu (doplnění závorek), formátovací a sázecí programy (LaTex).
Důležitým prvkem překladače jsou diagnostické zprávy které informují o chybách ke kterým během překladu došlo a s kterými si překladač neporadil.
Podle přístupu k překladu dělíme překadače na
- Kompilátory (kompilační překladače) - přeloží kód zdrojového program na kód v cílovovém jazyce, který je následně spuštěn a vykonán. Výhodou těchto kompilátorů je, že program se přeloží jednou a dál už se spouští jen cílový program.
- Interprety (interpretační překladače) - oproti tomu interpreti vynechávají krok vytvoření cílového programu a zdrojový program překládají rovnou do akcí, které se vykonávají. Viz. obrázek vpravo.
- čistý strojový kód - obsahuje jen instrukce instrukčního souboru počítače, nepředpokládá existenci operačního systému (OS) a je tedy plně závislý na konkrétní HW.
- rozšířený strojový kód - využívá kromě instrukčního souboru počítače i podprogramy OS. Je tedy závislý jak na hardwaru tak na softwaru počítače. Překladač Fortranu.
- virtuální strojový kód - obsahuje pouze virtuální instrukce, které nejsou závislé ani na HW ani na SW počítače. Díky tomu jsou překladatele přenositelné, stačí jen dopsat interpreta virtuálního kódu.
- Symbolický formát - klasický zdoják s instrukcemi v kterých se člověk vyzná. Nejčastěji se jedná o asembler.
- Relokativilní binární formát - kód v binárním tvaru, ale bez vyřešených odkazů na externí symboly. Adresy jsou relativní od nějakého počátečního úseku.
- Absolutní binární formát - binární spustitelný kód.