Ein GCC-Frontend verwandelt Code in eine interne Zwischenform, die von GCC verwendet wird. Ein GCC-Backend verwandelt diese interne Zwischenform in die endgültige Form, die der Compiler ausgibt.
Wenn Sie beispielsweise ein C ++ - Frontend und ein Java-Frontend haben, können Sie Eingaben in C ++ und Java akzeptieren. Wenn Sie über ein x86-Back-End und ein MIPS-Back-End verfügen, können Sie ausführbare Dateien für x86- und MIPS-CPUs erstellen.
Wenn Sie Go-Unterstützung für GCC hinzufügen möchten, schreiben Sie ein Go-Frontend für GCC. Dann könnten Sie für jede Plattform, die GCC unterstützt, Go-Code kompilieren.
Wenn Sie GCC Unterstützung für eine neue CPU hinzufügen möchten, schreiben Sie ein neues Backend für diese CPU. Dann könnten Sie Code für diese CPU in jeder Sprache erzeugen, die GCC unterstützt.