Skip to main content

Compiler

Was ist ein Compiler?

Compiler wird eine Software genannt, die einen in einer Programmiersprache geschrieben Quellcode so übersetzt, dass sie von Maschinen verstanden werden können. Der Begriff Compiler stammt aus dem Englischen und leitet sich vom “compile” (zusammenführen) ab. Da die Software allerdings den Quellcode übersetzt, wäre die korrekte Bezeichnung “Translator”. Im Laufe der Zeit hat sich aber Compiler als Synonym für Übersetzer durchgesetzt. Der eigentliche Prozess der Übersetzung wird als Kompilierung bezeichnet.

© https://blog.programminghub.io/blog/2017/02/28/offline-compiler-apps-solution/

Erst durch die Kompilierung versteht die Maschine

Maschinen – wie zum Beispiel Computer – sind recht einfache Geräte. Im Grunde verstehen sie nur Nullen und Einsen und ein paar spezifische Befehle. Dementsprechend umständlich würde die Programmierung von Software aussehen. So wurden in der Anfangszeit tatsächlich von Rechenmaschinen auszuführende Tätigkeiten in Maschinensprache programmiert. Um die Softwareprogrammierung zu vereinfachen, hat man schon sehr früh damit begonnen unterschiedliche Programmiersprachen zu entwickeln. Die Bekanntesten sind sicherlich C, C++ und Basic. Diese erlauben es, ein Programm in einer mehr oder weniger verständlichen Sprache zu erstellen. Im Anschluss wird dieser Quellcode in Maschinensprache übersetzt. Dabei übernehmen moderne Compiler gleich mehrere Aufgaben, beziehungsweise erfolgt die Übersetzung in mehreren Schritten.

Die Schritte bis zum fertigen Programm

Der erste Schritt ist die sogenannte Syntaxprüfung. Hier wird der Quellcode auf Fehler geprüft und die Übersetzung gegebenenfalls angehalten. Die gefundenen Fehlerstellen werden bei modernen Compilern protokolliert, um die Korrektur zu erleichtern. Ist der Quellcode fehlerfrei wird ein Zwischencode erzeugt, der die Basis für die Analyse sowie die Codeoptimierung darstellt. Wie weit die Codeoptimierung geht, ist von den Compiler sowie von den Benutzereinstellungen abhängig. Im dritten und letzten Schritt werden aus dem Zwischencode Befehle für die jeweilige Maschine übersetzt. Wobei moderne Compiler heute kaum noch selbst Codes generieren. So erfolgt bei C++ die Codegenerierung während des Linkens. Bei C# wird der Code während der Laufzeit durch die NET-Laufzeitbibliothek generiert. Bei Java erfolgt die Kompilierung ebenfalls erst während der Programmlaufzeit des erstellten Programms.

Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG

Compiler
3.5 (70.91%) 11 votes