Какво е това - компилатор и как работи

21.02.2019

Съвременните компютърни технологии са в постоянен етап на подобрение. Всеки ден се появяват все повече нови технологии, които позволяват да се осъзнае това, което наскоро бе определено като фикция. Езиците, както човешки, така и компютърни, също са обект на силни промени. В тази статия ще ви разкажем подробно какво е - компилаторът, как да работим с него, за какво е създаден и къде може да се намери сега. Статията се препоръчва не само за начинаещи потребители на операционната система Windows, но и за програмисти, които искат да знаят скритите познания за тяхната система.

Език за операционната система

Да започнем с това, че си струва да се абстрахираме, защото програмирането не само води определени ключови думи в машината, но и внимателно обмислени действия, свързани с компонентите на системата. Първоначално имаше двоичен код, след което програмистите създадоха полу-компютърен език за програмиране - асемблер, но за какво?

Представете си, че трябва да преброите всеки бит на калкулатора на програмиста, след това да го свържете правилно и много повече. В асемблера всичко е станало малко по-просто, но все пак много, много трудно в сравнение със съвременните езици за програмиране, например C ++, който се нарича един от най-сложните, но ще бъде обсъден малко по-късно.

инсталиран компилатор

В асемблерния език всичко се прави благодарение на регистрите на процесора: разделяне, умножение, преместване на стойността от точка А в точка Б и др. , Друг недостатък е ограничен брой от тези регистри.

През 80-те години те решават да измислят език за програмиране, благодарение на който лесно и лесно да напишете операционна система. Така се появи C и компилатора C от GCC от GNU. Ако използвате Linux, трябва да сте видели продуктите на тази компания. Между другото, асемблерът все още се използва днес, защото някои компилатори създават обектни файлове с двоичен код, докато други са изпълними - с код в асемблер. Всичко зависи от платформата на разработчиците.

Модерният компилатор сам по себе си има следните програми:

  1. Debugger е програма, която изпраща съобщения за грешки от линкъра, препроцесора, интерпретатора.
  2. Препроцесорът е програма, чиято основна задача е да търси специални етикети, започващи с знак # и изпълняващ определен вид команди. Например, добавяне на библиотека от трети страни за компилиране на проекта.
  3. Преводачът е програма, която превежда нашия или по-малко разбираем език за програмиране в двоичен код или асемблер.
  4. Linker е програма, поради която липсващите файлове се свързват автоматично.

Съществуват и 2 вида проекти, съставени от компилатора: динамичен и статичен. В първата се добавят само необходимите файлове на проекта, независимо от средата за разработка, а във втория случай - всичко в куп (свързани, разбира се). Така че от това вече можем да кажем, че компилаторът е пълен списък от програми за събиране и обработване на информация в ясна и логична форма за компютър. След това разглеждаме как е започнало всичко.

Първи прости компилатори

Може да се изненадате, но за първи път обектът на нашата статия (тогава се наричаше и преводач) се появява през 1954 г. в Института, специализиращ в приложна математика. Тя не включва толкова голям набор от програми, колкото е сега, но все още беше пробив в науката по онова време. Нямаше никакъв дебагър, така че хората трябваше да правят всичко буквално с ръцете си и да използват стандартна и дискретна математика, за да разберат дали електронният компютър е получил правилния резултат.

проста програма за c ++

Възможно ли е да се изгради без нов език?

Ако сте доста интелигентен програмист, тогава ще можете да изпълните тази задача. Вярно е, че това ще отнеме много време и усилия. Между другото, преди е имало дори такава професия - програмист-линкер. Само на нови езици за програмиране всичко е автоматизирано, а преди това хората трябваше да свързват части от кода на Make с файлове. Между другото, някои проекти на Linux вече могат да се събират с помощта на тези само Makefiles, просто трябва да посочите техните зависимости ръчно.

среда за развитие

След като събира кода, линкерът се отказва от работата на компютъра за обработка, където в крайна сметка получава готовия двоичен код.

Както виждате, компилаторът е не само програма, но и усилията на много хора. И те, както твърди Хенри Форд, се опитват да автоматизират всеки процес.

Най-добър компилатор на Windows

Така че много от читателите знаят, че има много мъртви езици, но още по-живи, т.е. тези, които обновяват стандартната си библиотека поне веднъж годишно. Както казахме, 1980 г. е създаден - това е пробив. Много от нашите бащи все още обожават този език, но какво да кажем сега?

Той живее и процъфтява в ново тяло, ако мога да го кажа. Неговият наследник е C ++ по право, въпреки че на създателя му е забранено да пише код подобен на C върху него, много програмисти игнорират това и правят, но защо е допустимо такова грубо нарушение на правилата?

актуализирана среда за разработка
  • Първо, той пое значителен дял от стандартните библиотеки от C, а новите G ++ компилатори могат да съставят C код, което само по себе си показва тяхната прилика.
  • Второ, C ++ е създаден, за да замени C, и ние виждаме резултатите от това сега. Между другото, програмата за компилиране на G ++ не се “кълне” докато не се използва поне един клас - това е основната разлика между двата езика. Можете да наричате G ++ най-добрия компилатор, не за нищо, благодарение на което те пишат мобилни приложения, операционна система Windows и т.н.

Съвети за начинаещи програмисти

Пътят ви ще бъде трънлив - на първо място си струва да знаете. За да започнете да работите с език, например, ако е С, определено ще трябва да се запознаете с компилатора C. И ако не се сближите с него и не разбирате логиката му, вашите проекти ще изостанат и летят един по един.

реда с код

Опитайте се да четете колкото се може повече книги не само за основите на програмирането, но и за историята на създаването на езиците, така че определено ще започнете да разбирате самата същност на процеса. Опитайте се да съчетаете практика и нови знания, така че всичко да се помни много по-бързо. Освен това, опитайте се да донесете английския си език поне на средно ниво, в противен случай ще ви бъде много трудно да навигирате в IDE.

В заключение

Надяваме се, след като прочетете тази статия, да разберете, че това е компилатор, как работи, защо е създаден и кой все още се нуждаете. Струва си да припомним, че най-важното за програмиста е да разбере ситуацията, да разбере основните принципи, така че наистина се надяваме, че статията ви е помогнала с това.