Programovacie jazyky vo všeobecnosti patria do jedného z dvoch typov jazykov - kompilované jazyky alebo tlmočené jazyky. Rozdiel však nie je v jazyku; je to v implementácii. Nie je nesprávne tvrdiť, že obidve sú vlastnosťami implementácie jazyka, ale nie vlastnosťami samotného jazyka. Implementácia programovacieho jazyka znamená preklenutie medzery od myslenia programátora na vyššiu úroveň k nule a stroju. Ak sa to robí efektívne, programátori sa môžu sústrediť skôr na skutočné problémy než na podrobnosti o strojoch. Programovací jazyk sa teda dá zostaviť alebo interpretovať na základe implementácie.
Oba typy programovacích jazykov majú svoje silné stránky. Niektoré jazyky vyžadujú, aby sa celý kód skompiloval predtým, ako bude možné vykonať akýkoľvek kód. Iné jazyky interpretujú každú inštrukciu v čase vykonávania kódu. Zostavené jazyky sú spravidla zostavované programátorom v počítači programátora; keď programátor zdieľa softvér, zdieľa kompilované 0 a 1, ale nie zdrojový kód. Pri interpretovanom jazyku sa však kód uloží v rovnakom formáte, aký ste zadali, a musí sa preložiť za behu. Pozrime sa na podrobné porovnanie kompilovaných a interpretovaných jazykov.
Počítače dokážu vykonať iba strojový jazyk, ktorý je jazykom centrálnej procesorovej jednotky (CPU) a je veľmi jednoduchý. Cieľom akejkoľvek implementácie programovacieho jazyka je preložiť zdrojový program do strojového jazyka, aby ho mohol vykonať CPU. Všetky jazykové implementácie prevedú zdrojový program do nejakej sprostredkovanej reprezentácie pred prekladom sprostredkovanej reprezentácie do strojového jazyka. Najpriamejšia metóda prekladu programu do strojového jazyka sa nazýva kompilácia. Program napísaný v kompilovanom jazyku musí byť pred spustením prevedený do iného formátu. Zdrojový kód sa musí pred vykonaním transformovať na strojovo čitateľné pokyny. Stručne povedané, jazyky, ktorých implementácia je zvyčajne kompilátorom a nie tlmočníkom, sa nazývajú kompilované jazyky.
Tlmočník je program, ktorý je napísaný v inom jazyku a je zostavený do strojovo čitateľného jazyka. Samotný tlmočník je program strojového jazyka a je napísaný na čítanie zdrojových programov z interpretovaného jazyka a ich interpretáciu. Interpretovaný jazyk naopak nezostavuje zdrojový kód do strojového jazyka pred spustením programu. Iba interpretuje kód za behu. Takže nemáte výhody ani nevýhody chýb pri kompilácii. Tlmočené jazyky si vyžadujú softvér nazývaný tlmočník, ktorý berie zdrojový kód a vykonáva naraz jednu inštrukciu. Keď spustíte interpretovaný zdrojový program, skutočne spustíte tlmočníka. Tlmočník je program strojového jazyka, ktorý vykonáva všetky programy, ktoré píšete v interpretovanom jazyku.
- Program napísaný v kompilovanom jazyku musí byť pred spustením prevedený do iného formátu. Zdrojový kód sa musí pred vykonaním transformovať na strojovo čitateľné pokyny. Interpretovaný jazyk naopak nezostavuje zdrojový kód do strojového jazyka pred spustením programu. Iba interpretuje kód za behu. Tlmočené jazyky si vyžadujú softvér nazývaný tlmočník, ktorý berie zdrojový kód a vykonáva naraz jednu inštrukciu.
- Pri kompilovaných jazykoch existujú najmenej dva kroky na získanie zo zdrojového kódu na vykonanie, zatiaľ čo v prípade interpretovaných jazykov existuje len jedno vykonanie. Program napísaný v tlmočenom jazyku nie je zostavený - je interpretovaný iným programom, keď je spustený. Program napísaný v skompilovanom jazyku prechádza procesom jeho zmeny z textového formátu čitateľného na človeka na strojovo čitateľný formát. Program nazvaný kompilátor robí tento prechod.
- Zostavené programy bežia rýchlejšie ako interpretované programy, ale interpretované programy je možné počas vykonávania programu upravovať. Vďaka tomu sú interpretované programy ideálne na písanie softvéru so živým vystúpením. Práca so skompilovanými jazykmi môže byť pekná, pretože pri kompilácii zdrojového kódu sa nájde veľa chýb. Tieto chyby nazývané chyby kompilácie zabraňujú kompilácii kódu. Naopak, tlmočené jazyky sa nezostavujú, takže nezískavate výhody ani nevýhody chýb pri kompilácii.
- Pri interpretovaných jazykoch sa všetky ladenia vyskytujú pri spustení. Neexistuje žiadny krok kompilácie, počas ktorého môžete vyčiarknuť všetky chyby syntaxe v kóde; namiesto toho musíte spustiť program, aby ste v ňom našli nejaké chyby. To sa stáva problémom, keď interpretujete program modifikuje súbory alebo zmeníte trvalé zdroje. To sťažuje zachytenie niektorých chýb, pretože kód sa nemusí kompilovať. Interpretované jazyky tiež predstavujú určité bezpečnostné obavy v online prostredí, keďže škodlivý kód sa môže vložiť do polovice vykonávania.
V skratke, skompilované aj tlmočené jazyky majú svoje silné stránky. Niektoré jazyky vyžadujú, aby sa celý kód skompiloval predtým, ako bude možné vykonať akýkoľvek kód. Iné jazyky interpretujú každú inštrukciu v čase vykonávania kódu. Hlavný rozdiel medzi týmito dvoma je v tom, že existujú najmenej dva kroky, aby ste sa dostali od zdrojového kódu k vykonávaniu so skompilovanými jazykmi. S tlmočenými jazykmi je však iba jeden krok - vykonanie. Zostavené programy bežia rýchlejšie ako interpretované programy, ale interpretované programy je možné počas vykonávania programu upravovať.