Programirni jeziki običajno spadajo v enega od dveh vrst jezikov - sestavljene jezike ali tolmačene jezike. Vendar razlika ni v jeziku; je v izvajanju. Ni narobe reči, da sta obe lastnosti implementacije jezika, ne pa tudi lastnosti samega jezika. Izvajanje programskega jezika pomeni premostiti vrzel od razmišljanja programerja na visoki ravni do ničel in tistih v stroju. Če se izvajajo učinkovito, se programerji lahko osredotočijo na dejanske težave, ne pa na podrobnosti strojev. Torej, programski jezik je mogoče sestaviti ali razlagati na podlagi izvedbe.
No, obe vrsti programskih jezikov imata svoje prednosti. Nekateri jeziki zahtevajo, da se zbere vsa vaša koda, preden se lahko katero koli kodo izvede. Drugi jeziki razlagajo vsako navodilo v času, ko se koda izvede. Pravzaprav sestavljene jezike programer navadno sestavi v računalniku programerja; kadar programer deli programsko opremo, si deli sestavljene 0 in 1, ne pa tudi izvorne kode. Vendar pa se z interpretiranim jezikom koda shrani v isti obliki, kot ste jo vnesli in jo morate med izvajanjem prevesti. Oglejmo si podrobno primerjavo med sestavljenimi in interpretiranimi jeziki.
Računalniki lahko izvajajo samo strojni jezik, ki je jezik centralne procesne enote (CPU) in je zelo preprost. Cilj vsake izvedbe programskega jezika je prevesti izvorni program v strojni jezik, tako da ga lahko izvaja CPU. Vse jezikovne izvedbe pretvorijo izvorni program v neko vmesno predstavitev, preden vmesni prikaz prevedejo v strojni jezik. Najbolj neposredna metoda prevajanja programa v strojni jezik se imenuje kompilacija. Program, napisan v sestavljenem jeziku, mora biti pred zagonom spremenjen v drugo obliko. Pred začetkom je treba izvorno kodo pretvoriti v strojno berljiva navodila. Skratka, jeziki, katerih izvedbe so običajno prevajalniki in ne tolmači, se imenujejo sestavljeni jeziki.
Tolmač je program, ki je napisan v nekem drugem jeziku in sestavljen v strojno berljiv jezik. Tolmač je program strojnega jezika in je napisan tako, da bere izvorne programe iz interpretiranega jezika in jih razlaga. Nasprotno, interpretirani jezik ne zbira izvorne kode v strojni jezik pred zagonom programa. Le na kratko razlaga kodo. Torej ne boste imeli koristi ali pomanjkljivosti napak pri sestavljanju. Za tolmačene jezike je potreben kos programske opreme, imenovan tolmač, ki vzame izvorno kodo in izvede eno navodilo naenkrat. Ko zaženete interpretirani izvorni program, tolmač dejansko zaženete. Tolmač je program strojnega jezika, ki izvaja vse programe, ki jih napišete v interpretiranem jeziku.
- Program, napisan v sestavljenem jeziku, mora biti pred zagonom spremenjen v drugo obliko. Pred začetkom je treba izvorno kodo pretvoriti v strojno berljiva navodila. Nasprotno, interpretirani jezik ne zbira izvorne kode v strojni jezik pred zagonom programa. Le na kratko razlaga kodo. Za tolmačene jezike je potreben kos programske opreme, imenovan tolmač, ki vzame izvorno kodo in izvede eno navodilo naenkrat.
- Pri sestavljenih jezikih obstajata vsaj dva koraka, da pridete od izvorne kode do izvedbe, medtem ko je pri interpretiranih jezikih samo en - izvedba. Program, napisan v interpretiranem jeziku, se ne sestavi - med izvajanjem ga interpretira drug program. Program, napisan v sestavljenem jeziku, skozi postopek, da ga spremeni iz besedila, ki ga je mogoče razumeti v človeku, v strojno berljiv format. Program, imenovan prevajalnik, opravi ta prehod.
- Sestavljeni programi tečejo hitreje kot interpretirani programi, vendar se interpretirani programi lahko spreminjajo med izvajanjem programa. Tako so interpretirani programi idealni za pisanje programske opreme v živo. Delo s sestavljenimi jeziki je lahko lepo, ker se najde veliko napak, ko je sestavljena izvorna koda. Te napake, imenovane napake pri kompilaciji, preprečujejo zbiranje kode. Nasprotno, razlagani jeziki se ne sestavljajo, zato ne dobite prednosti ali pomanjkljivosti napak pri kompilaciji.
- Pri interpretiranih jezikih se vse odpravljanje napak pojavlja med izvajanjem. Ni koraka kompilacije, v katerem lahko izločite vse napake sintakse v kodi; namesto tega morate zagnati program, da v njem najdete morebitne napake. To postane težava, ko interpretirani program spreminja datoteke ali spreminja stalne vire. Zaradi tega je nekaj napak težje ujeti, saj kode ni treba sestavljati. Razlagani jeziki predstavljajo tudi nekaj varnostnih pomislekov v spletnem okolju, saj se lahko zlonamerni kodi vbrizga sredi izvršitve.
Na kratko, tako sestavljeni kot interpretirani jeziki imajo svoje prednosti. Nekateri jeziki zahtevajo, da se zbere vsa vaša koda, preden se lahko katero koli kodo izvede. Drugi jeziki razlagajo vsako navodilo v času, ko se koda izvede. Glavna razlika med obema je, da obstajata vsaj dva koraka, da pridete od izhodne kode do izvedbe s sestavljenimi jeziki. Vendar pa je pri interpretiranih jezikih le en korak - izvedba. Sestavljeni programi tečejo hitreje kot interpretirani programi, vendar se interpretirani programi lahko spreminjajo med izvajanjem programa.