Program převádějící zdrojový program (např. C, C++ Pascal, Fortran) do cílového programu, na základě lexikální a syntaktické analýzy. Cílový program je většinou assembler nebo binární kód. Nejznámější implementací kompilátoru na Linuxu je
GCC - GNU C Compiler.
Logicky se skládá ze šesti sekcí pracujících jedna po druhé, nicméně většina moderních implementací používá vzájemnou komunikaci nebo některé části spojuje dohromady.
Lexikální analyzátor - jeho obsahem je poznat lexikální jednotky (identifikátory, operátory...) a předat je syntaktickému analyzátoru ve formě tokenů.
Syntaktický analyzátor - na základě předem daných pravidel pozná, zda daný zdrojový kód je napsán v daném jazyce a vytvoří syntaktický strom.
Sémantický analyzátor - Převede syntaktický strom na derivační nahrazením některých obratů, těmi které dávají "větší" smysl. Např. ve výrazu s operandy v plovoucí řádové čárce převede celočíselné konstanty na reálné
Generátor mezikódu - z derivačního stromu vytvoří jednoduchý tvar programu podobající se assembleru (tzv. trojadresný kód), který je nicméně nezávislý na hardwaru.
Optimalizátor - provede optimalizaci mezikódu, odstraněním mrtvých částí programu, propagací konstant a proměnných a dalších pokročilejších technik.
Generátor kódu - z mezikódu vytvoří cílový program