Compiler

Was ist ein Compiler und welche Aufgaben hat er?

Maschinenlesbaren Code erzeugen

Ein Zielprogramm eines Computers besteht nur aus zwei unterschiedlichen Zeichen – der 0 und der 1 – deshalb nennt man es auch Binärprogramm. Ein Compiler ist ein Programm, das den in einer höheren Programmiersprache geschriebenen Quellcode in die maschinenlesbare, binäre Sprache übersetzt. Das Ergebnis ist „ausführbarer Code“, der auch als Objektcode oder Zielsprache bezeichnet wird. In manchen Fällen erfolgt die Übersetzung auch per Zwischenschritt mit einer Assemblersprache, so dass anschließend ein Assembler zur Erzeugung des Maschinencodes benötigt wird.

Aufgaben des Compilers

Ein Compiler ist aber mehr als nur ein „Übersetzer“, denn im Zuge des Kompilierens fallen weitere Aufgaben an:

  • Bei der lexikalischen Analyse wird der Quellcode gescannt und Programmsymbole extrahiert. Überflüssige und fehlende Zeichen werden als Fehler erkannt.
  • Es folgt das Parsing mit einer syntaktischen Analyse, bei der die Grammatik des Quellcodes überprüft wird.
  • Bei der anschließenden semantischen Analyse wird überprüft, ob der Quellcode Sinn ergibt.

Das Finden von Programmfehlern ist also eine wesentliche Aufgabe des Compilers. Findet ein Compiler einen Fehler, wird eine Fehlermeldung mit Zeilennummer ausgegeben, so dass die Navigation des Entwicklers zum Fehler sehr leicht fällt.

Nicht bei allen Programmiersprachen ist ein Compiler notwendig. Java bspw. als objektorientierte Programmiersprache wird durch den Java-Just-in-Time-Compiler, einem Bestandteil der Java-Entwicklungsumgebung, in Java-Bytecode kompiliert. Java-Bytecode ist eine sogenannte Hybridsprache, also ein Kompromiss zwischen vollständig kompiliertem Binärcode und interpretierbaren Quellcode. Auch C#, VB.NET und Python sind Hybridsprachen. Typische Programmiersprachen mit Compiler sind C, C++. Pascal, Modula, COBOL und Fortran. 

Was macht t2informatik?

t2informatik - Wir entwickeln Software für großartige Unternehmen

Hinweise:

Hier finden Sie ergänzende Informationen aus unserer Rubrik Wissen kompakt:

Wissen kompakt: Was ist Capture and Replay?

Was ist Capture and Replay?

Wissen kompakt: Was ist ein Cache Miss?

Was ist ein Cache Miss?