Последната стъпка в създаването на програмата е дапревод на алгоритъм, написан на един от езиците за програмиране (C / C ++, Pascal и т.н.), на машинен език на ниско ниво. Това се дължи на факта, че компютрите трябва да изпълняват команди на език, който разбират, който е близък до двоичен и оперира с примитивни структури от данни (бит, байт или дума), за да изпълнява всяка задача. Процесът на превеждане на проблемно ориентираните оператори на езици от високо ниво в двоичен код се нарича превод. Има два метода за превод - компилация и интерпретация.
Анализът на множеството тълкувания на термините „компилатор“ и „компилация“ ни позволява да обособим следното определение. съставител Е програма за преводтекстът на оригиналния алгоритъм от език на високо ниво до еквивалентен набор от инструкции на машинно ориентиран език. Това е така нареченият обектов код за последващо сглобяване на получения обект код в готов за употреба програмен модул.
преводач Е помощна програма, като компилатор,създаден да превежда изходния код в машинен код. Въпреки това, за разлика от компилатора, интерпретаторът се стартира всеки път заедно с програмата и извършва превода ред по ред.
Можем да кажем, че компилаторът и интерпретаторът са езикови процесори, които позволяват на компютъра да разпознава и изпълнява команди, дадени от програмист.
Компилаторите се класифицират главно по функции, свързани с техните области на практическо приложение.
Векторизиращ компилатор Това е помощна програма, която превежда изходния код в обектния код и е адаптирана за компютри, оборудвани с векторни процесори.
Гъвкав компилатор програмирано на език на високо ниво по модулен начин. Управлението му се осъществява с помощта на таблици. Възможно е също така да се изпълни с помощта на компилатора на компилатора.
Инкрементален съставител - Това е езиков процесор, който превежда отделни фрагменти от изходния код и допълнения към него. Това обаче елиминира рекомпилацията на цялото приложение.
Интерпретация (стъпка по стъпка) компилатор Това е помощна програма, която последователно независимо компилира всяко изречение или команда от изходния код на високо ниво.
Компилатор на компилатор - преводач, способен да възприема официално описание за език на програмиране и независимо да генерира компилатор за всеки език.
Компилатор за отстраняване на грешки ви позволява да намерите и елиминирате някои видове грешки в синтаксиса, направени при писане на изходния код
Резидентен компилатор заема постоянно място в RAM и следователно е на разположение за повторна употреба от широк спектър от задачи.
Компилатор за самостоятелно съставяне Написана е на същия език, от който се извършва излъчването.
Универсален компилатор на базата на официално описание на семантичните и синтактични параметри на въведения език. Основните компоненти на такава програма са ядрото, синтаксисът и семантичните товарачи.
Всеки компилатор се основава на преводач исвръзка. Често при компилиране се използва външен линкер, а самият компилатор изпълнява само функцията за превод. Също така се случва компилаторът да се реализира като вид програма за управление, свързана с преводача (или преводачи, ако при писането на изходния код са били използвани различни езици за програмиране) и линкъра и да ги стартира, ако е необходимо.
Въпреки че програмата е написана навсеки език за програмиране, можете да компилирате и интерпретирате, много езици на високо ниво са предразположени към определен метод на превод. И така, езикът на C първоначално е предназначен за компилация, а Java - за интерпретация на писмена програма. C компилаторите се разработват доста лесно, поради сравнително ниското му ниво и малкия брой структурни елементи.
Обърнете внимание, че компилираните приложения иматпо-голяма скорост в сравнение с интерпретирания, но в същото време машинният код, получен в резултат на компилация, зависи от хардуерната платформа. Така че програма, написана и компилирана за Windows, няма да работи, например, в Linux. Следователно, в случай на интернет приложения, когато е невъзможно да се каже предварително в коя среда ще работят, те използват интерпретация или байтов код (в този случай оригиналната програма се преобразува в междинна форма, която може да бъде изпълнена на различни хардуерни платформи).