Преглед на компилаторите на C

Нека научим тази концепция на компилаторите с пример. Да предположим, че сте били на място, където езиците, на които говорите, са напълно различни един от друг и сега сте имали някои проблеми с пътуването и искате да общувате същото с тях. Как? Имате ли нужда от преводач нали? Вие избирате да имате някой, който може да разбере вашия език и да преведе и да оставите обратния човек да разбере какво искате да кажете. По същия начин ние бихме писали своя C код на език на високо ниво, който е разбираем за хората формат. Как програмата би разбрала какво сме поискали от нея? Това е мястото, където компилаторът влиза в картината. Компилаторът преобразува и превежда език от висок клас на разбираем от машина (ниско ниво) език. Процесът на компилиране прави основни механизми за превод, както и откриване на грешки. Компилацията от предния край включва лексикален, синтаксисен и семантичен анализ. И в задния край, компилацията прави генериране на код и оптимизация. Така че има много компилатори в C като BDS, Clang, GCC, Interactive C, Lattice, Portable C Compiler, Visual Express и др. Нека се запознаем повече с някои от тях.

Обяснения към съставителите на C

По-долу са най-добрите компилатори на C:

1) Borland Turbo C

Turbo C е един от основните и популярни компилатори за езика за програмиране на C. Това е представено за първи път през 1987 г .; тя беше популярна заради малкия си размер, скоростта на компилация и ниската цена. След като Turbo C ++ излиза през 1990 г., и двата компилатора са обединени и името Turbo C е прекратено. През 2006 г. Embarcadero Technologies преиздаде Turbo C като безплатна. Спомняте ли си този син екран?

2) Tiny C Compiler

Tiny C Compiler е проектиран да работи на бавни компютри с малко дисково пространство. Това е компилатор на ARM процесор C. Този компилатор стартира своята поддръжка за Windows от 2005 г. Някои от неговите функции са споменати по-долу.

  1. Размерът на файла му е малък и според собственика на този компилатор (Fabrice Bellard). Устойчивостта на този компилатор е около девет пъти по-бърза от GCC. Компилацията, сглобяването и свързването на код бяха основните атрибути, разгледани за измерване на бързината на този компилатор.
  2. Този компилатор е включил много специфични за компилатора функции за увеличаване на незадължителната памет, свързана проверка и има по-голяма стабилност на кода.
  3. Този компилатор позволява автоматично изпълнение на програми по време на компилиране само с помощта на аргументи на командния ред. По този начин програмите се изпълняват под UNIX, като се използват скриптове за черупки. Последната версия е пусната на декември 2017 г.

3) Преносим компилатор C

Преносимият компилатор C (PCC) беше много рано използван и утвърден компилатор за езика за програмиране на С, който е почти около средата на 1970 година. Този компилатор имаше дълъг живот. Това е разпространено през период по такъв начин, че много от компилаторите на C се основават на него. Предимствата на PCC зависят от неговите възможности и прогнози за вероятността. PCC компилаторът е направен така, че изходните файлове са зависими от машината, не всички, а само няколко от тях. Той може да открие синтаксични грешки и може да извършва перфектни проверки за валидност. Нова версия на PCC беше пусната на 10 декември 2014 г.

4) GCC

Колекцията GNU Compiler е компилаторът, произведен от GNU Project. Това поддържа много езици на програмиране и е безплатна софтуерна фондация съгласно Общия публичен лиценз. Този компилатор е пуснат за първи път през 1987 г. и той поддържа само език на C-програмиране по време на старта. Бавно се разширява до C ++, Java, Android и IOS. Тук всеки от различните компилатори на език има своя собствена програма, която чете написания код и изпраща машинния код като изход. Всички те имат обща вътрешна структура. Когато е написан език на високо ниво, според езика, на който е написан, компилаторът анализира кода на този език и създава абстрактно синтаксисно дърво. GCC използва LALR парсери, но бавно преминава към рекурсивно-спускащи парсери за C през 2006 г. В момента на частта за оптимизация, както вече е известно, това може да се случи по време на всяка фаза на компилирането. Въпреки това, тук груповите оптимизации се извършват преди генерирането на код и след синтаксиса, семантичен анализ. По-долу са някои от оптимизациите, извършени от GCC.

  1. Той може да премахне парчетата от Dead Code.
  2. Той може да премахне излишността на ниво код.
  3. Подмяна на агрегатите по отношение на скаларното ниво.
  4. Може да извършва оптимизации с масиви.

В GCC задният край се определя от макроси на препроцесори и функции, специфични за определена архитектура. Този код обикновено се изгражда чрез първо извикване на малък фрагмент код, който е свързан с всеки модел и генериране на инструкции от набора от инструкции. Извършва се с помощта на регистри, компенсации и адреси, избрани по време на фазата на повторно зареждане. Сегашната версия на GCC е 9.2, която беше пусната на 12 август 2019 г.

5) Кланг

  1. звън; включително C, също е компилатор за програмни езици на C ++, Objective-C и target-C ++. Този компилатор използва LLVM за компилации, свързани с задния край. Този компилатор е проектиран да действа като заместител на GCC, като поддържа много от неговите компилационни флагове и езикови разширения.
  2. Clang има много сътрудници, включително Apple, Microsoft, Google, Sony и Intel. Това е софтуер с отворен код. LLVM беше използван за първи път от GCC за компилация от предния край, но GCC създаде някои проблеми на разработчиците в Apple, тъй като изходният код е голям и труден за използване. И така, те бяха дошли с Кланг.
  3. Една от основните цели на Clang е да осигури архитектура, базирана на библиотеки. Той е предназначен да запазва повече информация по време на процеса на компилиране от GCC. Това също помага да се запази цялостната форма на оригиналния код.
  4. Докладът за грешки, генериран от Clang по време на компилиране, винаги е подробно и конкретно в машинно четим формат. Clang винаги е имал за цел да намали прекомерното използване на паметта и да увеличи скоростта на компилиране в сравнение с GCC, и поради тези качества, той се превърна в един от най-бързо развиващите се компилатори за определен период от време. Но след известно време представянето на Кланг започна да намалява. В докладите се казва, че представянето се забавя с почти големи разлики в сравнение с GCC и започва да има по-бавни резултати. Най-новите сравнения показват, че и двамата съставители са излезли и са увеличили производителността си и отново са създали голяма конкуренция между тях. И все пак GCC остава начело в списъка.

заключение

Въпреки че има много компилатори за C, GCC се откроява като един от най-добрите до момента. Декларацията за победител тук се основава на издръжливост, оптимизация, скорост и проверки на код / ​​грешка / синтаксис. Чрез това можем ясно да разберем, че компилаторът е важен стълб към програмните езици. Без тяхна работа каквато и програма да напишем, просто би било боклук за системата.

Препоръчителни статии

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

  1. Съставители на Python
  2. Java компилатори
  3. Как да инсталирате C
  4. Предимства на C
  5. Въведение в PHP компилатор
  6. JavaScript Компилатори