Prezentare generală a compilatoarelor C

Să învățăm acest concept de compilatoare cu un exemplu. Să presupunem că ați fost într-un loc în care limbile pe care le vorbiți sunt complet diferite între ele și acum aveți câteva probleme de călătorie și doriți să comunicați la fel cu ele. Cum? Aveți nevoie de un traducător nu? Optezi să ai pe cineva care să-ți înțeleagă limba și să traducă și lasă persoana opusă să înțeleagă ce ai vrut să spui. În același mod, am scrie codul nostru C într-un limbaj la nivel înalt, care este un format inteligibil pentru om. Cum ar înțelege programul ce i-am cerut să facă? Acesta este locul în care compilatorul intră în imagine. Un compilator transformă și traduce un limbaj high-end în limbaj inteligibil pentru mașini (nivel scăzut). Procesul de compilare realizează mecanisme de traducere de bază și, de asemenea, detectarea erorilor. Compilarea front end include analize lexicale, sintaxă și semantică. Iar în partea din spate, compilarea face generarea și optimizarea codului. Așadar, există numeroase compilatoare în C precum BDS, Clang, GCC, Interactive C, Lattice, Compilator C portabil, Visual Express, etc. Haideți să aflăm mai multe despre câteva dintre ele.

Explicații pentru compilatoarele C

Iată mai jos compilatorii de top din C:

1) Borland Turbo C

Turbo C este unul dintre compilatorii de bază și populari pentru limbajul de programare C. Aceasta a fost introdusă pentru prima dată în 1987; a fost popular pentru dimensiunile mici, viteza de compilare și prețul redus. După ce Turbo C ++ a fost lansat în 1990, ambele compilatoare au fuzionat și numele Turbo C a fost întrerupt. În 2006, Embarcadero Technologies a relansat Turbo C ca freeware. Îți amintești acest ecran albastru?

2) Compilator Tiny C

Comparatorul Tiny C este proiectat pentru a funcționa pe computere lente cu puțin spațiu pe disc. Acesta este un compilator C al procesorului ARM. Acest compilator și-a început suportul pentru Windows din 2005. Unele dintre caracteristicile sale sunt menționate mai jos.

  1. Dimensiunea fișierului său este mică și în conformitate cu proprietarul acestui compilator (Fabrice Bellard). Rapiditatea acestui compilator este de aproximativ nouă ori mai rapidă decât GCC. Compilarea, asamblarea și conectarea codului au fost principalele atribute luate în considerare pentru măsurarea rapidității acestui compilator.
  2. Acest compilator a inclus multe caracteristici specifice compilatorului pentru a spori memoria opțională, verificarea legată și a avut o stabilitate mai mare a codului.
  3. Acest compilator permite executarea automată a programelor în timpul compilării folosind doar argumente de linie de comandă. În acest fel, programele sunt executate sub UNIX, folosind scripturi shell. Cea mai recentă versiune a fost lansată în decembrie 2017.

3) Compilator portabil C

Compilatorul portabil C (PCC) a fost un compilator foarte utilizat și consacrat pentru limbajul de programare C, care este aproape în jurul mijlocului anilor 1970. Acest compilator a avut o durată de viață lungă. Acest lucru a fost prevalent într-o perioadă în așa fel încât mulți dintre compilatorii C s-au bazat pe aceasta. Avantajele PCC depindeau de capacitățile sale și predicțiile de probabilitate. Compilatorul PCC a fost făcut astfel încât fișierele sursă să depindă de mașină, nu toate, ci doar câteva dintre ele. Poate detecta erori de sintaxă și poate efectua verificări de validitate perfectă. O nouă versiune a PCC a fost lansată pe 10 decembrie 2014.

4) CCG

Colecția GNU Compiler este compilatorul produs de Proiectul GNU. Aceasta acceptă multe limbaje de programare și este o bază de software gratuită sub Licența publică generală. Acest compilator a fost lansat pentru prima dată în 1987 și a acceptat numai limbajul de programare C în timpul începerii. S-a extins încet în C ++, Java, Android și IOS. Aici, fiecare dintre diferitele compilatoare de limbă are propriul program care citește codul scris și trimite codul mașinii ca ieșire. Toate acestea au o structură internă comună. Când este scris un limbaj la nivel înalt, conform limbii în care este scris, compilatorul analizează codul în limba respectivă și produce un arbore sintaxă abstractă. GCC folosește analizoare LALR, dar a trecut lent la analizori recurent-descendenți pentru C în 2006. Venind la partea de optimizare, așa cum se știe deja, acest lucru poate apărea în orice fază a compilării. Totuși, aici optimizările în vrac sunt efectuate înainte de generarea codului și după sintaxa, analiza semantică. Mai jos sunt câteva dintre optimizările efectuate de GCC.

  1. Poate elimina piesele din codul mort.
  2. Poate elimina redundanța la nivel de cod.
  3. Înlocuirea Agregatelor în raport cu nivelul scalar.
  4. Poate efectua optimizări cu Arrayuri.

În GCC back end-ul este specificat de macrocomenzi și funcții specifice unui anumit arhitectură. Acest cod este în general construit apelând mai întâi la un cod de fragment mic, care este asociat cu fiecare model și generează instrucțiuni din setul de instrucțiuni. Se realizează folosind registre, compensări și adrese alese în faza de reîncărcare. Versiunea actuală a GCC este 9.2, care a fost lansată pe 12 august 2019.

5) Clang

  1. Zăngăni; inclusiv C, este, de asemenea, un compilator pentru limbaje de programare C ++, Objective-C și obiective-C ++. Acest compilator folosește LLVM pentru compilări legate de codul final. Acest compilator a fost proiectat pentru a acționa ca un înlocuitor pentru GCC prin sprijinirea multor steaguri de compilare și extensii de limbaj.
  2. Clang are mulți participanți, inclusiv Apple, Microsoft, Google, Sony și Intel. Este un software open-source. LLVM a fost folosit pentru prima dată de GCC pentru compilarea front end, dar GCC a cauzat unele probleme dezvoltatorilor de la Apple, deoarece codul sursă este mare și dificil de utilizat. Deci, veniseră cu Clang.
  3. Unul dintre obiectivele majore pentru Clang este furnizarea arhitecturii bazate pe bibliotecă. Este conceput pentru a păstra mai multe informații în timpul procesului de compilare decât GCC. Acest lucru ajută, de asemenea, la păstrarea formei generale a codului original.
  4. Raportul de eroare generat de Clang în timpul compilării este întotdeauna detaliat și specific într-un format care poate fi citit de mașini. Clang a avut întotdeauna scopul de a reduce consumul excesiv de spațiu de memorie și de a crește viteza de compilare în comparație cu GCC și, datorită acestor calități, a devenit unul dintre compilatoarele cu cea mai rapidă creștere într-un anumit timp. Dar într-o perioadă, performanța lui Clang a început să coboare. Rapoartele au spus că performanța a rămas cu diferențe aproape mari în comparație cu GCC și au început să aibă performanțe mai lente. Cele mai recente comparații indică faptul că ambele compilatoare au apărut și și-au mărit performanțele și creând încă o dată o mare concurență între ei. Cu toate acestea, GCC rămâne în fruntea listei.

Concluzie

Deși există numeroase compilatoare disponibile pentru C, GCC se remarcă ca fiind unul dintre cele mai bune de acum. Declarația de câștigător aici se bazează pe durabilitate, optimizare, viteză și verificări cod / eroare / sintaxă. Prin aceasta, putem înțelege clar că Compilatorul este un pilon important pentru limbajele de programare. Fără munca lor, orice program pe care îl scriem ar fi doar gunoi pentru sistem.

Articole recomandate

Acesta a fost un ghid al celor mai bune compilatoare C. Aici discutăm explicații ale compilatoarelor C cu cinci puncte scurte. De asemenea, puteți parcurge și celălalt articol sugerat pentru a afla mai multe-

  1. Compilatoare Python
  2. Compilatoare Java
  3. Cum se instalează C
  4. Avantajele C
  5. Introducere în compilatorul PHP
  6. Compilatoare JavaScript