GCC

Die GNU Compiler Collection ist eine Sammlung von Compilern aus dem GNU-Projekt, dass von Richard Stallman (MIT-Labs) ins Leben gerufen wurde  Es handelt sich um eine Compilersammlung für unterschiedliche Plattformen und Zielsprachen. Die beinhalteten Sprachen umfassen neben dem klassischen C/C++ auch Java, Fortran, Objective C oder Ada.  Der GCC Compiler läuft auf vielen Plattformen, darunter auch: x86, Alpha, IA-64, AMD64, Motorola 68000 und Motorola 88000 sowie PowerPC, Sun SPARC oder VAX und PDP-11.  Ausserdem läuft er auf einigen Embedded Systems wie Intel i960, Microchip PIC24 und PIC32 (für C) oder MicroBlaze und MMIX. 
Der GCC-Compiler verfügt über 2,1 Millionen Programmzeilen und 25.000 Dateien. 

GCC-Compiling-Vorgang
Der Ablauf des GCC-Compiling-Vorganges ist wie folgt:

Schritt 1: Das GCC Hauptprogramm wird vom User aufgerufen
Schritt 2: Ein Kommandozeilen-Argument wird von GCC interpretiert
Schritt 3:  Die vorliegende Zielsprache wird identifiziert
Schritt 4: Aufruf des passenden Ziel-Compilers
Schritt 5: Übergabe der Ausgabe an den Assembler
Schritt 6: Aufruf des Binders (Linker)
Schritt 7: Die Ausführbare Datei wird erstellt und ausgegeben 

Arbeitsweise des GCC-Compilers: Prä-Prozessor, Register Transfer Language 
Der GCC Compiler arbeitet mit einem Prä-Prozessor der den Quell-Code vorbehandelt und auch den entstehenden Assembler-Code in dem Preprocessing Step bearbeitet. Bei diesem Pre-Processing werden Compilermakros und Header Dateien  (Prä-Prozessing-Dateien) in z. B. C- oder Assembler-Code umgewandelt. Das jeweilige Zielsprachen-Frontend dient als Parser der einen Syntaxbaum erzeugt und diesen an ein Backend übergibt, wo er in die GCC-eigene  Register Transfer Language (RTL) überführt wird. Anschliesend wird der Code effizienter gemacht durch verschiedene Code-Optimierungen und schliesslich der fertige Assemblercode für die Zielplattform erstellt.  Der GCC-Compiler verfügt über ein Front-, Middle- und Backend. Der GCC-Compiler ist hauptsächlich in C programmiert.                                   
Siehe auch:    GNU   Compiler   Parser   Linker   Interpreter   Programmiersprache-C   C-Plus-Plus   ADA   Java   SPARC