Razlika između verzija stranice "Kompajler"

[pregledana izmjena][pregledana izmjena]
Uklonjeni sadržaj Dodani sadržaj
No edit summary
m →‎top: razne ispravke
Red 2:
{{Tačnost}}{{Izvršenje programa}}
 
'''Kompajler''' (''prevodilac'', ''programski prevodilac'', [[Engleski jezik|eng.]] ''compiler'') jest [[računarski program]] koji čita program napisan u izvornom jeziku, te ga prevodi u ciljani (najčešće mašinski) jezik.
 
[[Softver]] pisan za prve [[računar]]e je dugo vremena pisan u [[asembler]]skom jeziku (niži simbolički jezik namijenjen programiranju računara i prilagođen arhitekturi centralnog [[procesor]]a, razlikovati od asemblera – asembler je pomoćni program koji prevodi asemblerski jezik u mašinski jezik datog računara). Viši programski jezici su stvoreni tek kada je korist od mogućnosti upotrebe softvera na više vrsta procesora postala veća od troškova pisanja kompajlera. Ograničene [[Memorija računara|memorijske]] mogućnosti prvih računara su bile tehnička prepreka kod primjene kompajlera.
 
U svojim začecima, izgled kompajlera ovisio je od kompleksnosti procesiranja, iskustva autora i raspoloživih resursa. Kompajler koji piše jedan autor za neki relativno jednostavan jezik je jedan, monolitan, komad softvera. Složeniji jezici i zahtjevi za kvalitetom rezultiraju kompajlerima dizajniranim u nekoliko donekle samostalnih faza. Za svaku od faza može biti zadužen po jedan autor, odnosno, posao podijeljen između više saradnika. Rad po fazama omogućava kasniju lakšu zamjenu poboljšanim verzijama ili umetanje novih (optimizacija).
 
Formalna se definicija kompajlera zasniva na odnos između tri jezika: ''izvorni jezik'', ''ciljni jezik'' i ''jezik izgradnje'', te se kompajler prikazuje na slijedeći način:
 
 
:<math>MJ_{L_g }^{L_i \to L_c } </math>
Line 74 ⟶ 73:
|}
 
Obično je kompajler i sam program, te je stoga i jezik izgradnje [[programski jezik|programski jezik]] kojim je ostvaren sam kompajler.
 
 
Obično je kompajler i sam program, te je stoga i jezik izgradnje [[programski jezik|programski jezik]] kojim je ostvaren sam kompajler.
 
Osim tri spomenuta jezika, razvijaju se i posebni ''metajezici'' (''jezici definiranja jezika'') koji omogućuju jednostavan zapis pravila programskih jezika.
Line 88 ⟶ 85:
 
Leksička analiza grupira znakove izvornog programa u osnovne elemente jezika, koje se zovu leksičke jedinke (engl. ''token'') ili leksemi. Leksemi su npr. varijable, ključne riječi, konstante, operatori i pravopisni znakovi.
Leksička se jedinka formalno zadaje kao niz znakova. Leksička pravila određuju skup svih pravilno napisanih leksičkih jedinki (nizova) zadanog programskog jezika.
 
Dozvoljava se da je skup pravilno napisanih leksičkih jedinki beskonačan i u formalnom smislu taj skup definira jezik leksičkih jedinki. [[Konačni automat|Formalni automat]] je osnovica leksičkog analizatora. Tokom leksičke analize, svaki se leksem zamijeni ''jedinstvenim znakom''.
Line 105 ⟶ 102:
 
Naredbe nižeg međukoda koriste simboličke registre ''r1'' do ''r8''.
 
 
 
[[Kategorija:Računarstvo]]