Завршна фаза израде програма јепревод алгоритма написаног у једном од програмских језика (Ц / Ц ++, Пасцал, итд.) у машински језик ниског нивоа. То је због чињенице да рачунари за обављање било ког задатка морају да поставе команде на језику који разумеју, бинарном и који ради са примитивним структурама података (бит, бајт или реч). Процес превођења проблемски оријентисаних оператора језика високог нивоа у бинарни код назива се превођењем. Постоје две методе превођења - компилација и тумачење.
Анализа многих тумачења појмова „компајлер“ и „компилација“ омогућава нам да истакнемо следећу дефиницију. Састављач Да ли је програм дизајниран за превођењетекст оригиналног алгоритма из језика високог нивоа у еквивалентан сет упутстава на машински оријентисаном језику. Ово је такозвани објектни код за накнадно повезивање резултујућег објектног кода у програмски модул спреман за употребу.
Тумач Да ли је услужни програм, баш као и компајлер,дизајниран за превођење изворног кода у машински код. Међутим, за разлику од компајлера, интерпретер се покреће сваки пут са програмом и изводи превод ред по ред.
Можемо рећи да су компајлер и тумач језички процесори који омогућавају рачунарској машини да препозна и изврши упутства дата од програмера.
Састављачи су класификовани углавном према карактеристикама повезаним са областима њихове практичне примене.
Векторизациони компајлер Је услужни програм који преводи изворни код у објектни код и прилагођен је рачунарима опремљеним векторским процесорима.
Флексибилни компајлер програмиран на језику високог нивоа на модуларној основи. Њено управљање се врши помоћу табела. Такође је могуће извршити га помоћу компајлера компајлера.
Инкрементални компајлер Да ли је језички процесор који поново преводи појединачне фрагменте изворног кода и његове додатке. Међутим, елиминише потребу за поновним превођењем целокупне апликације.
Тумачење (корак по корак) компајлера Је услужни програм који независно компајлира сваку наредбу или наредбу изворног кода високог нивоа узастопно.
Компајлер компајлера - преводилац способан да прихвати формални опис за програмски језик и независно генерише компајлер за било који језик.
Компајлер за отклањање грешака омогућава вам проналажење и уклањање неких врста синтаксних грешака направљених приликом писања изворног кода
Стални компајлер заузима стално место у РАМ меморији и, према томе, доступан је за поновну употребу у широком спектру задатака.
Самокомпајлирајући компајлер написана на истом језику са ког се врши емитовање.
Генериц цомпилер заснива се на формалном опису семантичких и синтаксичких параметара улазног језика. Главне компоненте таквог услужног програма су кернел, синтаксички и семантички учитавачи.
Било који компајлер заснован је на преводиоцу илинкер. Често се приликом компајлирања користи спољни повезивач, а сам преводилац врши само функцију превођења. Такође се дешава да је компајлер имплементиран као нека врста управљачког програма повезаног са преводиоцем (или преводиоцима, ако су приликом писања изворног кода коришћени различити програмски језици) и повезивачем и по потреби започиње њихово извршавање.
Упркос чињеници да је програм написан убило који програмски језик, можете и компајлирати и тумачити, многи језици високог нивоа имају предиспозицију за један или други начин превођења. Дакле, језик Ц је првобитно дизајниран за компилацију, а Јава - за тумачење писаног програма. Састављачи језика Ц развијају се прилично лако, због његовог релативно ниског нивоа и малог броја структурних елемената.
Имајте на уму да компајлиране апликације имајувећа брзина у поређењу са протумаченим, али истовремено резултујући машински код за компилацију зависи од хардверске платформе. Дакле, програм написан и компајлиран за Виндовс неће радити, на пример, на Линуку. Због тога се у случају Интернет апликација, када је немогуће унапред рећи у ком окружењу ће радити, користе интерпретацију или бајт-код (у овом случају оригинални програм се претвара у средњи облик који се може извршити на разном хардверу платформе).