Концепция в дефиниция ABC
Miscellanea / / July 04, 2021
От Гилем Алсина Гонсалес, през септември. 2017
Как можем да се разбираме с някой, с когото нямаме общ език? Чрез преводач. Тази функция за превод е това, което изпълнява a компилатор да се превърне в код изпълним изходен код, написан от програмист.
Компилацията е процес, чрез който е програма, написана на език от високо ниво преведени в машинния код, използван от определена компютърна архитектура, за неговото изпълнение директен.
Следователно и според обяснението, което току-що предложихме, тази система изисква избор на a архитектура дестинация, която може да е различна във всеки отделен случай и ще ни принуди да компилираме отделно за всяка от различните архитектури, в които искаме да работи нашата програма.
По този начин, например, можем да преминем към определена програма за 32-битовата x86 архитектура, 64-битовата x86, PowerPC или ARM също разграничават 32 и 64 бита, в зависимост от типа устройство, в което искаме стартирайте го.
Освен това трябва да вземем предвид и различните операционни системи, дори ако работим за една и съща платформа хардуер, тъй като всеки има различен начин на взаимодействие с физическата машина
Да вземем за пример 64-битовата платформа x86. Може да искаме да компилираме за Windows, GNU / Linux или macOS, или за всеки един от тях, което предполага три отделни процеса на компилация.
Понякога това ни принуждава да променим леко изходния код, като често запазваме три отделни версии (или повече, в зависимост от това случая), за да могат те да си взаимодействат правилно с особеностите и разликите на платформата за дестинация.
Процесът на компилация следва поредица от стъпки, като например откриване на синтактични грешки в изходния код, след това a предварително обработени, за да знаят ресурсите, от които се нуждае програмата, и накрая връзката с библиотеките и ресурсите, необходими за нея екзекуция.
По този начин, a файл изпълним файл, съдържащ всички ресурси необходими за неговото изпълнение, както и инструкциите, необходими за достъп до външни ресурси, като библиотеки със споделен код (споделени).
Процесът на компилация се извършва с определен инструмент или инструменти (компилатор), въпреки че е обичайно това да бъде интегрирано в среди за разработка (IDE), като по този начин улеснява неговото използване.
Всеки език на програмиране Той има собствен компилатор, въпреки че за дълго време компилаторът, съответстващ на език и среда, е способен да генерира изпълними файлове за различни платформи софтуер различен.
Има ли алтернативна опция на процеса на изграждане? Да, и те са интерпретирани езици.
Интерпретираните езици са тези, които се превеждат по време на изпълнение и не се компилират.
Следователно техният изходен код е винаги на разположение и това, от което се нуждаят, е това в операционна система на който са екзекутирани, има преводач.
Чрез избягване на процеса на компилация, ако интерпретаторът е достъпен за множество платформи, ще бъде възможно да стартирате програмата директно на всеки един от тях, обикновено без промени.
Други фокус алтернатива, по средата между компилирани и интерпретирани езици, са тези, които изискват виртуална машина да работи, например Java.
Езиците за програмиране, които се изпълняват върху слой за виртуализация (виртуална машина), изискват междинен процес, подобен на този на компилация, но това води до код, който не може да се изпълни директно, макар и по-оптимизиран от този, изпълнен от даден език тълкуван.
В тези случаи той изисква процес, подобен по форма на този на компилацията, но това дава различен резултат и който все пак изисква, във всеки случай, инсталация на а време на изпълнение в операционната система, в която искаме да стартираме нашата програма.
Снимки: Fotolia - Александър Покусай / Onot
Теми в Компилация