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.
Podle závislosti na architektuře počítače dělíme cílové programy na:
  • č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.
Podle formátu dělíme cílový kód na:
  • 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.