Nedostaci i prednosti kompilatora

...

Programeri koriste kompajlere za pretvaranje izvornog koda u strojni kod.

Računala čitaju naredbe iz strojnog jezika napisane u binarnom obliku, tj. duge nizove nula i jedinica. Dok računala mogu učinkovito čitati ovaj jezik, većina ljudskih programera ne može. Zato programeri rade u programskom jeziku koji razumiju, a zatim ga prevode u strojni jezik koji računalo može razumjeti. Dok mnogi noviji jezici koriste tumače koji prevode s jednog na drugi dok program radi, stariji programski jezici koristili su kompilatore koji su ovaj prijevod u potpunosti izvršili prije nego što je računalo izvršilo program.

Prednost: Samostalan i učinkovit

Jedna od glavnih prednosti kompajliranih programa je ta što su samostalne jedinice koje su spremne za izvođenje. Budući da su već kompajlirani u binarne datoteke strojnog jezika, ne postoji druga aplikacija ili paket koji korisnik mora održavati ažurnim. Ako je program sastavljen za Windows na x86 arhitekturi, krajnjem korisniku treba samo Windows operativni sustav koji radi na arhitekturi x86. Dodatno, unaprijed kompajlirani paket može raditi brže od tumača koji kompilira izvorni kod u stvarnom vremenu.

Video dana

Nedostatak: Specifičan za hardver

Budući da prevodilac prevodi izvorni kod u određeni strojni jezik, programi moraju biti posebno sastavljen za OS X, Windows ili Linux, kao i posebno za 32-bitne ili 64-bitne arhitekture. Za programera ili softversku tvrtku koja pokušava predstaviti proizvod najširoj mogućoj publici, to znači održavanje više verzija izvornog koda za istu aplikaciju. To rezultira više vremena utrošenog na održavanje izvornog koda i dodatnim problemima kada se objave ažuriranja.

Prednost: Optimizacija hardvera

Iako zaključavanje u određeni hardverski paket ima svoje nedostatke, kompajliranje programa također može povećati njegovu izvedbu. Korisnici mogu slati specifične opcije prevoditeljima u vezi s detaljima hardvera na kojem će se program izvoditi. To omogućuje prevoditelju da stvori kod strojnog jezika koji najučinkovitije koristi navedeni hardver, za razliku od generičkog koda. To također omogućuje naprednim korisnicima da optimiziraju izvedbu programa na svojim računalima.

Nedostatak: vrijeme kompajliranja

Jedan od nedostataka kompajlera je da on zapravo mora kompilirati izvorni kod. Dok je malim programima koje kodiraju mnogi programeri početnici potrebno malo vremena za kompajliranje, većim paketima aplikacija može biti potrebno dosta vremena za prevođenje. Kada programeri nemaju ništa drugo nego čekati da kompajler završi, ovo vrijeme se može zbrojiti – osobito tijekom faza razvoja, kada se kod mora kompilirati kako bi se testirala funkcionalnost i otklonili problemi pogreške.