KOMPILATORI
Prevodilac se odnosi na računalni program koji se koristi za prevođenje računalnog koda koji je napisan na jednom programskom jeziku (koji se naziva izvorni jezik) u drugi programski jezik (koji se naziva ciljni jezik). Pojam kompajler prvenstveno se primjenjuje na programe koji prevode izvorne kodove s programskog jezika visoke razine na programski jezik niže razine. Na primjer, strojni kod, objektni kod ili asemblerski jezik za stvaranje izvršnog programa.
Važno je napomenuti da postoji mnogo različitih vrsta kompilatora. U slučaju da se program koji je preveden može izvoditi na računalu čiji se operativni sustav ili CPU razlikuje od onog koji prevodilac izvodi, prevodilac se naziva unakrsni prevodilac. S druge strane, bootstrap kompajler je napisan na jeziku koji namjerava kompilirati. Dekompilator je program koji se koristi za prevođenje jezika niske razine u jezik više razine. Program koji se koristi za prevođenje između jezika visoke razine naziva se izvorni prevodilac. Može se nazvati i transpilerom. Program koji je odgovoran za prevođenje oblika izraza bez promjene jezika poznat je kao prepisivač jezika. Pojam prevodilac-prevodilac odnosi se na one alate koji se koriste za stvaranje parsera odgovornih za izvođenje analize sintakse.
Neke od operacija koje izvodi kompilator uključuju: pretprocesiranje, raščlanjivanje, (prijevod usmjeren sintaksom) semantičku analizu, leksičku analizu, generiranje koda, optimizaciju koda i konverziju ulaznih programa u posredni prikaz. Kompajleri su odgovorni za implementaciju ovih operacija u različitim fazama koje promoviraju ispravne transformacije i učinkovit dizajn izvornog ulaza u ciljani izlaz. Greške programa koje su uzrokovane neispravnim ponašanjem prevoditelja može biti vrlo teško pronaći i riješiti ih. Implementatori prevoditelja stoga ulažu značajne napore kako bi osigurali ispravnost prevoditelja.
Važno je napomenuti da prevoditelji nisu jedini prevoditelji koji se koriste za transformaciju izvornih programa. Računalni softver koji je odgovoran za transformaciju i zatim izvršavanje naznačenih operacija naziva se tumač. Proces prevođenja utječe na dizajn računalnih jezika što dovodi do preferiranja tumačenja ili kompilacije. U praksi, implementacija tumača za prevoditelje i kompilirane jezike može se implementirati za interpretirane jezike.
Imajte na umu da se pri korištenju kompajlera za izvođenje programa koristi proces u dva koraka,
LANAC ALATA ZA KOMPILIRANJE
Za programe koji su veliki, kompajler je dio lanca alata u više koraka,
(pretprocesor)- (prevodilac)- (sastavljač)- (povezivač)- (učitavač).
STRUKTURA KOMPILERA
Moderni prevoditelji sastoje se od dva glavna dijela. Svaki od ovih dijelova često se dalje dijeli. Ova dva glavna dijela su prednji i stražnji kraj.
Front end je odgovoran za analizu izvornog programa, konstruira posredni prikaz programa i određuje njegove sastavne dijelove. Općenito, sučelje je neovisno o ciljnom jeziku.
Stražnja strana je, s druge strane, odgovorna za sintezu ciljnog programa iz intermedijarne reprezentacije koju proizvodi prednja strana. Općenito, za stražnji kraj se kaže da je neovisan o izvornom jeziku.