Преглед садржаја:
Дефиниција - Шта значи Компајлер?
Компајлер је софтверски програм који трансформише изворни код високог нивоа који програмер пише из програмског језика високог нивоа у објектни код ниског нивоа (бинарни код) у машински језик, који процесор може разумети. Процес претварања високог нивоа програмирања у машински језик познат је као компилација.
Процесор извршава објектни код, који показује када су потребни бинарни високи и ниски сигнали у аритметичкој логичкој јединици процесора.
Тецхопедиа објашњава преводиоца
Компајлер који претвара машински језик у природни језик високог нивоа назива се декомпилер. Компајлери који производе објектни код који би требало да се изводи у систему називају се унакрсни компајлери. Коначно, преводилац који претвара један програмски језик у други зове се преводилац језика.
Компајлер извршава четири главна корака:
- Скенирање : Скенер чита један знак истовремено са изворног кода и прати који је знак присутан у којој линији.
- Лексичка анализа : Компајлер претвара низ знакова који се појављују у изворном коду у низ низова знакова (познатих као токени), који су повезани посебним правилима програма који се зове лексички анализатор. Табела симбола користи лексички анализатор за смештање речи у изворном коду које одговарају генерираном токену.
- Синтактичка анализа : У овом кораку се врши синтакса анализа која укључује прерадбу како би се утврдило да ли су токени креирани током лексичке анализе у правилном редоследу према употреби. Исправан редослед скупа кључних речи, који могу дати жељени резултат, назива се синтакса. Компајлер мора да провери изворни код да би се осигурала синтактичка тачност.
- Семантичка анализа : Овај корак се састоји од неколико интермедијарних корака. Прво се проверава структура токена, заједно са њиховим редоследом у односу на граматику на датом језику. Значење структуре токена интерпретира и растављач и анализатор да би коначно генерисао интермедијарни код, назван објектни код. Објектни код укључује упуте које представљају радњу процесора за одговарајући токен када се нађе у програму. Коначно, читав се код анализира и тумачи да ли је могућа оптимизација. Након што се могу извршити оптимизације, одговарајући модификовани токени се убацују у објектни код како би се генерирао коначни објектни код, који се спрема у датотеку.
