Übersicht über C-Compiler

Lassen Sie uns dieses Konzept von Compilern anhand eines Beispiels lernen. Angenommen, Sie waren an einem Ort, an dem die Sprachen, die Sie sprechen, völlig unterschiedlich sind, und Sie hatten jetzt einige Probleme mit dem Reisen und möchten dasselbe mit ihnen kommunizieren. Wie? Benötigten Sie einen Übersetzer? Sie entscheiden sich dafür, jemanden zu haben, der Ihre Sprache versteht und übersetzt, und der anderen Person zu erklären, was Sie sagen wollten. Auf die gleiche Weise würden wir unseren C-Code in einer Hochsprache schreiben, die für den Menschen verständlich ist. Wie würde das Programm verstehen, worum wir es gebeten haben? Hier kommt der Compiler ins Spiel. Ein Compiler transformiert und übersetzt eine High-End-Sprache in eine maschinell verständliche Sprache. Der Kompilierungsprozess führt grundlegende Übersetzungsmechanismen und auch Fehlererkennung durch. Die Front-End-Kompilierung enthält lexikalische, syntaktische und semantische Analysen. Und am hinteren Ende übernimmt die Kompilierung die Codegenerierung und -optimierung. Es gibt also viele Compiler in C, wie z. B. BDS, Clang, GCC, Interactive C, Lattice, Portable C Compiler, Visual Express usw. Erfahren Sie mehr über einige von ihnen.

Erläuterungen zu C-Compilern

Unten sind die Top-Compiler von C:

1) Borland Turbo C

Turbo C ist einer der grundlegenden und beliebten Compiler für die Programmiersprache C. Dies wurde erstmals 1987 eingeführt; Es war beliebt für seine geringe Größe, Kompilierungsgeschwindigkeit und niedrigen Preis. Mit der Veröffentlichung von Turbo C ++ im Jahr 1990 wurden beide Compiler zusammengeführt und der Name Turbo C wurde eingestellt. Im Jahr 2006 hatte Embarcadero Technologies Turbo C als Freeware erneut veröffentlicht. Erinnerst du dich an diesen blauen Bildschirm?

2) Kleiner C-Compiler

Der Tiny C Compiler wurde für langsame Computer mit wenig Speicherplatz entwickelt. Dies ist ein ARM-Prozessor-C-Compiler. Dieser Compiler unterstützt Windows seit 2005. Einige seiner Funktionen werden im Folgenden aufgeführt.

  1. Seine Dateigröße ist klein und laut dem Eigentümer dieses Compilers (Fabrice Bellard). Die Geschwindigkeit dieses Compilers ist etwa neunmal schneller als die von GCC. Das Kompilieren, Assemblieren und Verknüpfen von Code waren die Hauptattribute, die für die Messung der Geschwindigkeit dieses Compilers berücksichtigt wurden.
  2. Dieser Compiler hatte viele compilerspezifische Funktionen zur Erhöhung des optionalen Speichers, der gebundenen Prüfung und zur Erhöhung der Codestabilität.
  3. Dieser Compiler ermöglicht die automatische Ausführung von Programmen während der Kompilierungszeit nur mit Befehlszeilenargumenten. Auf diese Weise werden Programme unter UNIX mithilfe von Shell-Skripten ausgeführt. Die neueste Version wurde im Dezember 2017 veröffentlicht.

3) Portabler C-Compiler

Der Portable C Compiler (PCC) war ein sehr früh eingesetzter und etablierter Compiler für die Programmiersprache C, der fast Mitte der 1970er Jahre entstand. Dieser Compiler hatte eine lange Lebensdauer. Dies war in einer Zeit weit verbreitet, in der viele C-Compiler darauf basierten. Die Vorteile von PCC hingen von seinen Fähigkeiten und Wahrscheinlichkeitsvorhersagen ab. Der PCC-Compiler wurde so erstellt, dass Quelldateien nicht alle, sondern nur einige maschinenabhängig sind. Es kann Syntaxfehler erkennen und perfekte Gültigkeitsprüfungen durchführen. Eine neue Version von PCC wurde am 10. Dezember 2014 veröffentlicht.

4) GCC

GNU Compiler Collection ist der vom GNU-Projekt produzierte Compiler. Dies unterstützt viele Programmiersprachen und ist eine kostenlose Software-Grundlage unter der General Public License. Dieser Compiler wurde erstmals 1987 veröffentlicht und unterstützte beim Start nur die Programmiersprache C. Langsam wurde es auf C ++, Java, Android und IOS ausgeweitet. Hier hat jeder der verschiedenen Sprachcompiler ein eigenes Programm, das den geschriebenen Code liest und den Maschinencode als Ausgabe sendet. Alle diese haben eine gemeinsame interne Struktur. Wenn eine Hochsprache geschrieben wird, analysiert der Compiler den Code in dieser Sprache und erstellt einen abstrakten Syntaxbaum. GCC verwendet LALR-Parser, wechselte jedoch 2006 langsam zu rekursiv absteigenden Parsern für C. Wie bereits bekannt, kann dies in jeder Phase der Kompilierung auftreten. Hier werden jedoch die Massenoptimierungen vor der Codegenerierung und nach der syntaktischen, semantischen Analyse durchgeführt. Im Folgenden finden Sie einige der von GCC durchgeführten Optimierungen.

  1. Es kann die toten Codestücke beseitigen.
  2. Es kann die Redundanz auf Codeebene beseitigen.
  3. Ersetzen von Aggregaten in Bezug auf die Skalarebene.
  4. Kann Optimierungen mit Arrays durchführen.

In GCC wird das Back-End durch Präprozessor-Makros und Funktionen spezifiziert, die für eine bestimmte Architektur spezifisch sind. Dieser Code wird im Allgemeinen erstellt, indem zuerst ein kleines Codefragment aufgerufen wird, das jedem Muster zugeordnet ist, und aus dem Befehlssatz Befehle generiert werden. Dies geschieht mit Registern, Offsets und Adressen, die während der Neuladephase ausgewählt werden. Die aktuelle Version von GCC ist 9.2 und wurde am 12. August 2019 veröffentlicht.

5) Clang

  1. Clang; Einschließlich C ist es auch ein Compiler für C ++ -, Objective-C- und Objective-C ++ - Programmiersprachen. Dieser Compiler verwendet LLVM für die Kompilierungen im Zusammenhang mit dem Back-End-Code. Dieser Compiler wurde als Ersatz für den GCC entwickelt, indem er viele seiner Kompilierungsflags und Spracherweiterungen unterstützt.
  2. Clang hat viele Mitwirkende, darunter Apple, Microsoft, Google, Sony und Intel. Es ist Open-Source-Software. LLVM wurde zuerst von GCC für die Front-End-Kompilierung verwendet, aber GCC hatte einigen Entwicklern bei Apple Probleme bereitet, da der Quellcode groß und schwierig zu verwenden ist. Also hatten sie sich Clang ausgedacht.
  3. Eines der Hauptziele von Clang ist die Bereitstellung einer bibliotheksbasierten Architektur. Es wurde entwickelt, um mehr Informationen während des Kompilierungsprozesses zu speichern als GCC. Dies hilft auch dabei, die Gesamtform des ursprünglichen Codes beizubehalten.
  4. Der von Clang während der Kompilierung generierte Fehlerbericht ist immer detailliert und spezifisch in einem maschinenlesbaren Format. Clang war immer bestrebt, die Überbelegung des Speicherplatzes zu reduzieren und die Kompilierungsgeschwindigkeit im Vergleich zu GCC zu erhöhen. Aufgrund dieser Eigenschaften war Clang zu einem der am schnellsten wachsenden Compiler geworden. Aber im Laufe der Zeit begann die Leistung von Clang zu sinken. In den Berichten wurde festgestellt, dass die Leistung im Vergleich zu GCC mit fast großen Unterschieden zurückgeblieben war und eine langsamere Leistung zu verzeichnen begann. Die jüngsten Vergleiche zeigen, dass beide Compiler ihre Leistung gesteigert und erneut einen großen Wettbewerb zwischen ihnen geschaffen hatten. Dennoch bleibt GCC ganz oben auf der Liste.

Fazit

Obwohl es für C viele Compiler gibt, gilt GCC ab sofort als einer der besten. Die Gewinnerdeklaration basiert hier auf Haltbarkeit, Optimierung, Geschwindigkeit und Code- / Fehler- / Syntaxprüfungen. Dadurch können wir klar verstehen, dass der Compiler eine wichtige Säule für die Programmiersprachen ist. Ohne ihre Arbeit wäre jedes Programm, das wir schreiben, nur Müll für das System.

Empfohlene Artikel

Dies war ein Leitfaden für Best C Compiler. Hier diskutieren wir Erklärungen von C-Compilern mit fünf kurzen Punkten. Sie können auch unseren anderen vorgeschlagenen Artikel durchgehen, um mehr zu erfahren.

  1. Python-Compiler
  2. Java-Compiler
  3. So installieren Sie C
  4. Vorteile von C
  5. Einführung in den PHP Compiler
  6. JavaScript-Compiler