Overzicht van C-compilers

Laten we dit concept van compilers leren met een voorbeeld. Stel dat u op een plaats bent geweest waar de talen die u spreekt volledig van elkaar verschillen en dat u nu enkele reisproblemen had en hetzelfde met hen wilt communiceren. Hoe? Heb je toch een vertaler nodig? U kiest ervoor iemand te hebben die uw taal begrijpt en vertaalt en de andere persoon laat begrijpen wat u wilde zeggen. Op dezelfde manier zouden we onze C-code schrijven in een taal op hoog niveau die voor mensen begrijpelijk is. Hoe zou het programma begrijpen wat we hebben gevraagd? Dit is waar de compiler in beeld komt. Een compiler transformeert en vertaalt een high-end taal naar voor de machine (laag niveau) begrijpelijke taal. Het compileerproces doet basisvertalingsmechanismen en ook foutdetectie. De front-endcompilatie omvat lexicale, syntaxis en semantische analyse. En aan de achterkant doet de compilatie de codegeneratie en -optimalisatie. Er zijn dus veel compilers in C, zoals BDS, Clang, GCC, Interactive C, Lattice, Portable C Compiler, Visual Express, enz. Laten we er meer over weten.

Uitleg voor C-compilers

Hieronder staan ​​de Top Compilers van C:

1) Borland Turbo C

Turbo C is een van de belangrijkste en populaire compilers voor de C-programmeertaal. Dit werd voor het eerst geïntroduceerd in 1987; het was populair vanwege zijn kleine formaat, compilatiesnelheid en lage prijs. Nadat Turbo C ++ in 1990 werd uitgebracht, zijn beide compilers samengevoegd en werd de naam Turbo C stopgezet. In 2006 had Embarcadero Technologies Turbo C opnieuw uitgebracht als freeware. Herinner je je dit blauwe scherm?

2) Tiny C-compiler

De Tiny C Compiler is ontworpen om te werken op langzame computers met weinig schijfruimte. Dit is een ARM-processor C-compiler. Deze compiler startte vanaf 2005 met ondersteuning voor Windows. Enkele functies worden hieronder vermeld.

  1. De bestandsgrootte is klein en volgens de eigenaar van deze compiler (Fabrice Bellard). De snelheid van deze compiler is ongeveer negen keer sneller dan GCC. Het compileren, samenstellen en koppelen van code waren de belangrijkste attributen die werden overwogen voor het meten van de snelheid van deze compiler.
  2. Deze compiler bevatte veel compiler-specifieke functies om het optionele geheugen op te voeren, bound checker en had een grotere codestabiliteit.
  3. Met deze compiler kunnen programma's tijdens de compilatie automatisch worden uitgevoerd met alleen opdrachtregelargumenten. Op deze manier worden programma's uitgevoerd onder UNIX, met behulp van shellscripts. De nieuwste versie is uitgebracht in december 2017.

3) Draagbare C-compiler

De Portable C Compiler (PCC) was een zeer vroeg gebruikte en gevestigde compiler voor de C-programmeertaal die bijna rond het midden van 1970 is. Deze compiler had een lange levensduur. Dit was zo overheersend gedurende een periode dat veel van de C-compilers daarop waren gebaseerd. De voordelen van PCC hingen af ​​van zijn mogelijkheden en waarschijnlijkheidsvoorspellingen. PCC-compiler is zo gemaakt dat bronbestanden niet afhankelijk zijn van machines, maar van slechts enkele. Het kan syntaxisfouten detecteren en perfecte validiteitscontroles uitvoeren. Een nieuwe versie van PCC is uitgebracht op 10 december 2014.

4) GCC

GNU Compiler Collection is de compiler geproduceerd door het GNU Project. Dit ondersteunt vele programmeertalen en het is een gratis softwarefundament onder de General Public License. Deze compiler werd voor het eerst uitgebracht in 1987 en ondersteunde tijdens het begin alleen de C-programmeertaal. Langzaam breidde het uit naar C ++, Java, Android en IOS. Hier heeft elk van de verschillende taalcompilers een eigen programma dat de geschreven code leest en de machinecode als uitvoer verzendt. Al deze hebben een gemeenschappelijke interne structuur. Wanneer een taal op hoog niveau wordt geschreven, volgens de taal die wordt geschreven, parseert de compiler de code in die taal en produceert een abstracte syntaxisboom. GCC maakt gebruik van LALR-parsers, maar is in 2006 langzaam overgeschakeld naar recursieve-afdalingsparsers voor C. Komt naar het optimalisatiegedeelte, zoals reeds bekend kan dit tijdens elke fase van de compilatie optreden. Hier worden de bulkoptimalisaties echter uitgevoerd vóór het genereren van de code en na de syntaxis, semantische analyse. Hieronder staan ​​enkele van de optimalisaties die GCC heeft uitgevoerd.

  1. Het kan de Dead Code-stukken elimineren.
  2. Het kan de redundantie op codeniveau elimineren.
  3. Vervanging van aggregaten met betrekking tot het scalaire niveau.
  4. Kan optimalisaties uitvoeren met arrays.

In GCC wordt de back-end gespecificeerd door preprocessormacro's en functies die specifiek zijn voor een bepaalde architectuur. Deze code wordt meestal opgebouwd door eerst een kleine fragmentcode aan te roepen die aan elk patroon is gekoppeld en instructies uit de instructieset te genereren. Het wordt gedaan met behulp van registers, offsets en adressen die worden gekozen tijdens de laadfase. De huidige versie van GCC is 9.2, die werd uitgebracht op 12 augustus 2019.

5) Clang

  1. Clang; inclusief C, is ook een compiler voor C ++, Objective-C en Object-C ++ programmeertalen. Deze compiler gebruikt LLVM voor de compilaties met betrekking tot de back-endcode. Deze compiler is ontworpen om als vervanging voor de GCC te dienen door veel van zijn compilatievlaggen en taalextensies te ondersteunen.
  2. Clang heeft veel bijdragen geleverd, waaronder Apple, Microsoft, Google, Sony en Intel. Het is open-source software. LLVM werd voor het eerst gebruikt door GCC voor de front-endcompilatie, maar GCC had bij Apple problemen veroorzaakt voor ontwikkelaars, aangezien de broncode groot en moeilijk te gebruiken is. Dus hadden ze Clang bedacht.
  3. Een van de belangrijkste doelen voor Clang is het bieden van bibliotheekarchitectuur. Het is ontworpen om meer informatie tijdens het compilatieproces te behouden dan GCC. Dit helpt ook om de algehele vorm van de oorspronkelijke code te behouden.
  4. Het foutenrapport dat door Clang tijdens het compileren wordt gegenereerd, is altijd gedetailleerd en specifiek in een machineleesbaar formaat. Clang had altijd als doel om het overgebruik van geheugenruimte te verminderen en de compilatiesnelheid te verhogen in vergelijking met GCC, en vanwege deze kwaliteiten was het een van de snelstgroeiende gebruikte compilers gedurende een bepaald tijdstip. Maar na een periode begon het optreden van Clang te dalen. De rapporten vertelden dat de prestaties achterbleven met bijna grote verschillen in vergelijking met GCC en langzamer begonnen te presteren. De meest recente vergelijkingen geven aan dat beide compilers waren gekomen en hun prestaties hadden verbeterd en wederom grote concurrentie tussen hen hadden gecreëerd. Toch blijft GCC bovenaan de lijst staan.

Conclusie

Hoewel er veel compilers beschikbaar zijn voor C, valt GCC op dit moment op als een van de beste. De winnaarverklaring ligt hier op basis van duurzaamheid, optimalisatie, snelheid en code / error / syntax-controles. Hierdoor kunnen we duidelijk begrijpen dat de Compiler een belangrijke pijler is voor de programmeertalen. Zonder hun werk zou het programma dat we schrijven gewoon vuilnis voor het systeem zijn.

Aanbevolen artikelen

Dit is een handleiding voor Best C Compilers geweest. Hier bespreken we de uitleg van C-compilers met vijf korte punten. U kunt ook ons ​​andere voorgestelde artikel doornemen voor meer informatie-

  1. Python-compilers
  2. Java-compilers
  3. Hoe te installeren C
  4. Voordelen van C
  5. Inleiding tot PHP Compiler
  6. JavaScript-compilers