Недостаци и предности компајлера

...

Програмери користе компајлере да претворе изворни код у машински код.

Рачунари читају команде из машинског језика написане у бинарном облику, односно дуге низове нула и јединица. Док рачунари могу ефикасно да читају овај језик, већина људских програмера не може. Зато програмери раде у програмском језику који разумеју, а затим га преводе на машински језик који рачунар може да разуме. Док многи новији језици користе тумаче који преводе са једног на други док програм ради, старији програмски језици су користили компајлере који су извршили овај превод у потпуности пре него што је рачунар извршио програм.

Предност: Самосталан и ефикасан

Једна од главних предности програма који се компајлирају је то што су то самосталне јединице које су спремне за извршење. Пошто су већ компајлирани у бинарне датотеке машинског језика, не постоји друга апликација или пакет који корисник мора да ажурира. Ако је програм компајлиран за Виндовс на к86 архитектури, крајњем кориснику је потребан само Виндовс оперативни систем који ради на архитектури к86. Поред тога, унапред компајлирани пакет може да ради брже од тумача који компајлира изворни код у реалном времену.

Видео дана

Недостатак: Специфичан за хардвер

Пошто компајлер преводи изворни код на одређени машински језик, програми морају бити посебно компајлирано за ОС Кс, Виндовс или Линук, као и посебно за 32-битне или 64-битне архитектуре. За програмера или софтверску компанију која покушава да представи производ најширој могућој публици, то значи одржавање више верзија изворног кода за исту апликацију. Ово доводи до више времена утрошеног на одржавање изворног кода и додатних проблема када се објаве ажурирања.

Предност: Оптимизација хардвера

Иако закључавање у одређени хардверски пакет има своје недостатке, компајлирање програма такође може повећати његове перформансе. Корисници могу слати специфичне опције компајлерима у вези са детаљима хардвера на којем ће програм радити. Ово омогућава компајлеру да креира код на машинском језику који најефикасније користи наведени хардвер, за разлику од генеричког кода. Ово такође омогућава напредним корисницима да оптимизују перформансе програма на својим рачунарима.

Недостатак: време компајлирања

Један од недостатака поседовања компајлера је то што он заправо мора да компајлира изворни код. Док је малим програмима које кодирају многи програмери почетници потребно тривијално много времена за компајлирање, већим пакетима апликација може бити потребно много времена за компајлирање. Када програмери немају шта да раде осим да чекају да компајлер заврши, ово време може да се зброји — посебно током фаза развоја, када код треба да се компајлира да би се тестирала функционалност и решили проблеми глитцхес.