Преглед на компилаторите на 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 г. Някои от неговите функции са споменати по-долу.
- Размерът на файла му е малък и според собственика на този компилатор (Fabrice Bellard). Устойчивостта на този компилатор е около девет пъти по-бърза от GCC. Компилацията, сглобяването и свързването на код бяха основните атрибути, разгледани за измерване на бързината на този компилатор.
- Този компилатор е включил много специфични за компилатора функции за увеличаване на незадължителната памет, свързана проверка и има по-голяма стабилност на кода.
- Този компилатор позволява автоматично изпълнение на програми по време на компилиране само с помощта на аргументи на командния ред. По този начин програмите се изпълняват под 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.
- Той може да премахне парчетата от Dead Code.
- Той може да премахне излишността на ниво код.
- Подмяна на агрегатите по отношение на скаларното ниво.
- Може да извършва оптимизации с масиви.
В GCC задният край се определя от макроси на препроцесори и функции, специфични за определена архитектура. Този код обикновено се изгражда чрез първо извикване на малък фрагмент код, който е свързан с всеки модел и генериране на инструкции от набора от инструкции. Извършва се с помощта на регистри, компенсации и адреси, избрани по време на фазата на повторно зареждане. Сегашната версия на GCC е 9.2, която беше пусната на 12 август 2019 г.
5) Кланг
- звън; включително C, също е компилатор за програмни езици на C ++, Objective-C и target-C ++. Този компилатор използва LLVM за компилации, свързани с задния край. Този компилатор е проектиран да действа като заместител на GCC, като поддържа много от неговите компилационни флагове и езикови разширения.
- Clang има много сътрудници, включително Apple, Microsoft, Google, Sony и Intel. Това е софтуер с отворен код. LLVM беше използван за първи път от GCC за компилация от предния край, но GCC създаде някои проблеми на разработчиците в Apple, тъй като изходният код е голям и труден за използване. И така, те бяха дошли с Кланг.
- Една от основните цели на Clang е да осигури архитектура, базирана на библиотеки. Той е предназначен да запазва повече информация по време на процеса на компилиране от GCC. Това също помага да се запази цялостната форма на оригиналния код.
- Докладът за грешки, генериран от Clang по време на компилиране, винаги е подробно и конкретно в машинно четим формат. Clang винаги е имал за цел да намали прекомерното използване на паметта и да увеличи скоростта на компилиране в сравнение с GCC, и поради тези качества, той се превърна в един от най-бързо развиващите се компилатори за определен период от време. Но след известно време представянето на Кланг започна да намалява. В докладите се казва, че представянето се забавя с почти големи разлики в сравнение с GCC и започва да има по-бавни резултати. Най-новите сравнения показват, че и двамата съставители са излезли и са увеличили производителността си и отново са създали голяма конкуренция между тях. И все пак GCC остава начело в списъка.
заключение
Въпреки че има много компилатори за C, GCC се откроява като един от най-добрите до момента. Декларацията за победител тук се основава на издръжливост, оптимизация, скорост и проверки на код / грешка / синтаксис. Чрез това можем ясно да разберем, че компилаторът е важен стълб към програмните езици. Без тяхна работа каквато и програма да напишем, просто би било боклук за системата.
Препоръчителни статии
Това е ръководство за най-добрите компилатори на C. Тук обсъждаме обясненията на C Compilers с пет кратки точки. Можете също да прегледате и другата ни предложена статия, за да научите повече-
- Съставители на Python
- Java компилатори
- Как да инсталирате C
- Предимства на C
- Въведение в PHP компилатор
- JavaScript Компилатори