Oversigt over C Compilers

Lad os lære dette koncept af kompilatorer med et eksempel. Antag, at du har været på et sted, hvor de sprog, du taler, er helt forskellige fra hinanden, og nu havde du nogle rejseproblemer og vil kommunikere det samme med dem. Hvordan? Har du brug for en oversætter ret? Du vælger at have nogen, der kan forstå dit sprog og oversætte og lade den modsatte person forstå, hvad du ville sige. På samme måde skriver vi vores C-kode på et højt niveau sprog, der er et menneskeligt forståeligt format. Hvordan ville programmet forstå, hvad vi har bedt om det at gøre? Det er her kompilatoren kommer ind i billedet. En kompilator transformerer og oversætter et avanceret sprog til maskinforståeligt (lavt niveau) forståeligt sprog. Kompileringsprocessen udfører basale oversættelsesmekanismer og også fejldetektering. Frontend-samlingen inkluderer leksikalsk, syntaks og semantisk analyse. Og i bagenden gør compilering kodegenerering og optimering. Så der er mange compilere i C som BDS, Clang, GCC, Interactive C, Gitter, Portable C Compiler, Visual Express osv. Lad os lære mere om et par af dem.

Forklaringer til C-kompilatorer

Nedenfor er de Top Compilers af C:

1) Borland Turbo C

Turbo C er en af ​​de grundlæggende og populære kompilatorer til programmeringssprog C. Dette blev først introduceret i 1987; det var populært for sin lille størrelse, kompilationshastighed og lave pris. Når Turbo C ++ blev frigivet i 1990, slås begge kompilatorer sammen, og navnet Turbo C blev ophørt. I 2006 havde Embarcadero Technologies frigivet Turbo C som freeware. Kan du huske denne blå skærm?

2) Tiny C-kompilator

Tiny C-kompilatoren er designet til at arbejde på langsomme computere med lidt diskplads. Dette er en ARM-processor C-kompilator. Denne compiler startede sin support til Windows fra 2005. Nogle af dens funktioner er nævnt nedenfor.

  1. Dens filstørrelse er lille og ifølge ejeren af ​​denne kompilator (Fabrice Bellard). Hastigheden af ​​denne kompilator er omkring ni gange hurtigere end GCC. Kompilering, samling og sammenkobling af kode var de vigtigste egenskaber, der blev overvejet til måling af denne kompilators hastighed.
  2. Denne compiler havde inkluderet mange compiler-specifikke funktioner for at øge den valgfri hukommelse, bundet checker og havde større kodestabilitet.
  3. Denne kompilator tillader automatisk udførelse af programmer i kompileringstiden kun ved hjælp af kommandolinjeargumenter. På denne måde udføres programmer under UNIX ved hjælp af shell-scripts. Den seneste version blev frigivet den december 2017.

3) Bærbar C-kompilator

Den bærbare C-kompilator (PCC) var en meget tidligt brugt og etableret kompilator til programmeringssprog C, der er næsten omkring midten af ​​1970. Denne kompilator havde en lang levetid. Dette var fremherskende i en periode på en sådan måde, at mange af C-kompilatorerne var baseret på det. Fordelene ved PCC var afhængige af dens muligheder og sandsynlighedsforudsigelser. PCC-compiler blev lavet sådan, at kildefiler var maskinafhængige, ikke alle, men kun et par af dem. Det kan registrere syntaksfejl og kan udføre perfekte gyldighedskontroller. En ny version af PCC blev frigivet den 10. december 2014.

4) GCC

GNU Compiler Collection er den compiler produceret af GNU Project. Dette understøtter mange programmeringssprog, og det er et gratis softwaregrundlag under General Public License. Denne kompilator blev først udgivet i 1987, og den understøttede kun C-programmeringssprog i starten. Langsomt udvides det til C ++, Java, Android og IOS. Her har hver af de forskellige sprogkomponenter sit eget program, der læser den skrevne kode og sender maskinkoden som output. Alle disse har en fælles intern struktur. Når der skrives et højt niveau sprog, som det sprog det er skrevet, analyserer kompilatoren koden på det sprog og producerer et abstrakt syntaks træ. GCC bruger LALR-parsere, men skiftes langsomt til rekursive nedstigningsanalyser til C i 2006. Kommer til optimeringsdelen, som allerede kendt, kan dette forekomme i enhver fase af samlingen. Imidlertid udføres bulkoptimeringerne før kodegenerering og efter syntaks, semantisk analyse. Nedenfor er et par af de optimeringer, der er udført af GCC.

  1. Det kan fjerne Dead Code-stykkerne.
  2. Det kan fjerne overflødigheden på kodeniveau.
  3. Udskiftning af aggregater med hensyn til det skalære niveau.
  4. Kan udføre optimeringer med Arrays.

I GCC specificeres bagenden ved hjælp af forarbejdningsmakroer og funktioner, der er specifikke for en bestemt arkitektur. Denne kode er generelt bygget ved først at kalde en lille kodekode, der er knyttet til hvert mønster og generere instruktioner fra instruktionssættet. Det gøres ved hjælp af registre, forskydninger og adresser, der vælges i ombelastningsfasen. Den aktuelle version af GCC er 9.2, som blev frigivet den 12. august 2019.

5) Clang

  1. Dunk; inklusive C, er også en kompilator til programmeringssprog C ++, Objekt-C og objektiv-C ++. Denne kompilator bruger LLVM til back-end-koderelaterede kompileringer. Denne kompilator er designet til at fungere som en erstatning for GCC ved at understøtte mange af dens kompilationsflag og sprogudvidelser.
  2. Clang har mange bidragydere, herunder Apple, Microsoft, Google, Sony og Intel. Det er open source-software. LLVM blev først brugt af GCC til frontend-kompilering, men GCC havde skabt nogle problemer for udviklere hos Apple, da kildekoden er stor og vanskelig at bruge. Så de var kommet med Clang.
  3. Et af de største mål for Clang er at tilvejebringe biblioteksbaseret arkitektur. Det er designet til at opbevare mere information under kompilationsprocessen end GCC. Dette hjælper også med at bevare den overordnede form af den originale kode.
  4. Fejlrapporten genereret af Clang under kompilering er altid i en detaljeret og specifik i et maskinlæsbart format. Clang havde altid til formål at reducere overforbruget af hukommelsesplads og øge kompilationshastigheden sammenlignet med GCC, og på grund af disse kvaliteter var det blevet en af ​​de hurtigst voksende brugte kompilatorer i løbet af et tidspunkt. Men over en periode begyndte Clangs præstation at falde ned. Rapporterne fortalte, at ydelsen var hængende med næsten store forskelle sammenlignet med GCC og begyndte at have langsommere ydelse. Den seneste sammenligning tyder på, at begge kompilatorerne var kommet op og øgede deres ydeevne og igen skabte stor konkurrence mellem dem. Alligevel forbliver GCC på toppen af ​​listen.

Konklusion

Selvom der er mange kompilatorer til rådighed for C, fremstår GCC som en af ​​de bedste lige nu. Vinderdeklarationen ligger her baseret på holdbarhed, optimering, hastighed og kode / fejl / syntaksecheck. Gennem dette kan vi tydeligt forstå, at Compiler er en vigtig søjle for programmeringssprogene. Uden deres arbejde ville ethvert program, vi skriver, bare være affald for systemet.

Anbefalede artikler

Dette har været en guide til Best C Compilers. Her diskuterer vi forklaringer af C-kompilatorer med fem korte punkter. Du kan også gennemgå vores andre foreslåede artikel for at lære mere-

  1. Python-kompilatorer
  2. Java Compilers
  3. Sådan installeres C
  4. Fordele ved C
  5. Introduktion til PHP Compiler
  6. JavaScript-kompilatorer

Kategori: