Новини високих технологій
» » Що це - компілятор, що і як він працює

Що це - компілятор, що і як він працює

27-02-2018, 20:23
1 360
Сучасні комп'ютерні технології знаходяться в постійній стадії вдосконалення. З кожним днем виходять все нові і нові технології, що дозволяють втілити в життя те, що ще недавно визначалося як фантастика. Сильним змінам піддаються і мови, як людські, так і комп'ютерні. У даній статті ми докладно розповімо, що це – компілятор, як працювати з ним, для чого він створювався і де його зараз можна зустріти. Стаття рекомендується не тільки починаючим користувачам операційної системи Windows, але і програмістам, які бажають пізнати приховані знання своєї системи.

Мова для операційної системи

Для початку варто абстрагуватися, адже програмування – це не тільки вбивання визначених ключів-слів в машину, це ще і ретельно продумані дії, пов'язані з компонентами системи. Спочатку був двійковий код, потім програмісти створили полумашинный мова програмування – асемблер, але для чого?


Уявіть собі, що вам треба рахувати на калькуляторі програміста кожен біт, потім правильно його зв'язувати і багато іншого. В асемблері все стало трішки простіше, але все ще дуже і дуже непросто, якщо порівнювати з сучасними мовами програмування, наприклад, С++, який називають одним з найскладніших, але про нього мова піде трохи пізніше.
В мові асемблер все здійснюється завдяки регістрів процесора: ділення, множення, значення переміщення з точки А в точку Б і т. д. Основна його проблема, що він все ще є полумашинным, але все одно піддається прочитанню людині, на відміну від хаотично розкиданих бітів. Ще одним мінусом було обмежену кількість цих самих регістрів. У 80-х роках вирішили придумати мова програмування, завдяки яким можна буде легко і просто написати операційну систему. Так з'явився З і компілятор З GCC від компанії GNU. Якщо ви використовуєте Linux, то обов'язково повинні були бачити продукти компанії. До речі, асемблер використовується і понині, адже деякі компілятори створюють об'єктні файли з двійковим кодом, а інші виконавчі код на асемблері. Все залежить від платформи розробника.

Сучасний компілятор має наступні програми в собі: Дебагер – програма, яка відправляє повідомлення про помилку від зв'язування, препроцесора, інтерпретатора. Препроцесор – це програма, головним завданням якої є пошук спеціальних міток, що починаються зі знака #, і виконання певного роду команд. Наприклад, додавання сторонньої бібліотеки для компіляції проекту. Інтерпретатор – програма, яка переводить наш більш-менш зрозумілу мову програмування в двійковий код або асемблер. Програма компонування – програма, завдяки якій відсутні файли автоматично підключаються. Також існує 2 типу складання проекту компілятором: динамічна і статична. У першій додаються лише потрібні файли проекту, незважаючи на середовище розробки, а в другому випадку - все в купу (підключені, звичайно). Отже, з цього вже можна сказати, що компілятор – це цілий список програм для збору і обробки інформації в зрозумілий і логічний для комп'ютера вигляд. Далі ми розглянемо, з чого все починалося.

Перші найпростіші компілятори

Може, ви здивуєтеся, але вперше об'єкт нашої статті (тоді його ще називали транслятор) з'явився в далекому 1954 році в Інституті, що спеціалізується на прикладній математиці. Він включав в себе не настільки великий комплекс програм, як зараз, але все одно був проривом в науці на той час. Там не було дебагера, тому людям доводилося все робити буквально руками, причому використовуючи при цьому стандартну і дискретну математику, щоб дізнатися, чи правильний результат отримала електронно-обчислювальна машина.

Можлива збірка без нової мови?

Якщо ви досить толковий програміст, то цілком зможете виконати цю задачу. Правда, для цього знадобиться чимало часу і сил. До речі, раніше була така професія – програміст-програма компонування. Це тільки в нових мовах програмування все автоматизовано, а раніше людям доводилося пов'язувати шматки коду Make файлами. Між іншим, деякі проекти на Linux і зараз можна зібрати за допомогою цих самих Make-файлів, потрібно лише вказати їх залежності вручну.
Після збору коду програма компонування віддавав роботу вже комп'ютера на обробку, де в результаті отримував готовий бінарний код. Як бачите, компілятор – це не лише програма, а ще й зусилля багатьох людей. А вони, як стверджував Генрі Форд, намагаються автоматизувати кожен процес.

Кращий компілятор Windows

Отже, багато хто з читачів знає, що існує безліч мертвих мов, але ще більше живих, тобто тих, які хоча б раз на рік оновлюють свою стандартну бібліотеку. Як ми вже говорили, в 1980 році був створений З - це був прорив. Багато наші батьки досі обожнюють цю мову, але що з ним тепер?

Він живе та процвітає у новому тілі, якщо так можна сказати. Його спадкоємцем по праву є С++, хоч і його творця забороняють писати на ньому код, схожий на З, багато програмісти ігнорує це і роблять, але чому таке допускається грубе порушення правил?
По-перше, він узяв солідну частку стандартних бібліотек від З, і нові компілятори G++ здатні компілювати код, що вже саме по собі вказує на їх подібність. По-друге, З++ був створений, щоб замістити З, і підсумки цього ми бачимо зараз. До речі, програма компілятор G++ не "лається" до тих пір, поки не буде використаний хоча б один клас – в цьому і є основна відмінність двох мов. Можна назвати G++ кращим компілятором, не даремно адже завдяки йому пишуть мобільні додатки, операційну систему Windows і т. д.

Порада початківцям програмістам

Ваш шлях буде тернистим – це варто знати насамперед. Для початку роботи з мовою, наприклад, якщо це, ви обов'язково повинні будете ознайомитися з компілятором C. А якщо з ним не подружитися і не зрозуміти його логіку, то ваші проекти один за одним будуть лагают і вилітати.
Спробуйте як можна більше читати книг не тільки про засади програмування, але і про історію створення мов, так ви обов'язково почнете розуміти саму суть процесу. Намагайтеся поєднувати практику і нові знання, так все куди швидше запам'ятовується. Крім того, постарайтеся довести свою англійську хоча б до середнього рівня, інакше вам буде дуже складно в орієнтуванні по IDE.

На закінчення

Сподіваємося, після прочитання цієї статті ви зрозуміли, що це – компілятор, як він працює, навіщо створювався і кому донині потрібен. Варто нагадати, що найголовніше для програміста – це розуміння ситуації, розуміння основних принципів, тому дуже сподіваємося, що стаття вам в цьому допомогла.
Цікаво по темі
Список всіх Include C поясненнями C
Список всіх Include C поясненнями C
Багато програмісти скажуть вас в один голос: вчити STL – стандартну бібліотеку, яка містить напрацювання безлічі розробників мови програмування, а
Як використовувати PKG файл
Як використовувати PKG файл
В даній статті піде мова про те, що таке PKG файл, де використовується, навіщо створювався і як самим його відкрити. Стаття рекомендується
Що таке програмування? Мови програмування. Комп'ютерне програмування
Що таке програмування? Мови програмування. Комп'ютерне програмування
В період появи перших комп'ютерних систем гостро постало питання того, як «навчити» машину сприймати ...
Що таке компілятор - опис
Що таке компілятор - опис
Якщо ви тільки починаєте вивчати програмування або ж просто цікавилися цим питанням, напевно вам на очі потрапляло таємниче слово «компілятор». Це з