Compiler

Wissen kompakt: Ein Compiler ist ein Programm, das den in einer höheren Programmiersprache geschriebenen Quellcode in die maschinenlesbare, binäre Sprache – als ausführbaren Code – übersetzt.

Compiler – die Erzeugung von maschinenlesbarem Code

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.

Neben der Übersetzung ist also das Finden von Programmfehlern eine wesentliche Aufgabe. Wird ein Fehler gefunden, erfolgt eine Meldung mit Zeilennummer, 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. 

Compiler - die Erzeugung von maschinenlesbarem Code

Was macht t2informatik?

Was macht t2informatik? Kleiner Tipp: Es hat etwas mit Softwareentwicklung zu tun!

Hinweise:

Die Inhalte auf dieser Seite dürfen Sie gerne teilen oder verlinken.

Im Zuge der Übersetzung von Programmcode in maschinenausführbaren Code fällt häufig auch der Begriff “Interpreter”. Der Unterschied zwischen beiden Diensten liegt in der Ausführung: Ein Compiler übersetzt den gesamten Programmcode auf einmal in Maschinensprache. Dadurch wird die Kompilierung langsamer, aber der resultierende Code schneller ausgeführt. Im Gegensatz dazu übersetzt ein Interpreter den Programmcode Zeile für Zeile während der Ausführung. Der Interpreter liest jede Codezeile und führt sie sofort aus, ohne eine separate ausführbare Datei zu erstellen. Dadurch wird die Interpretation schneller, aber die Ausführung des Programms langsamer.

Übrigens: Wir suchen Softwareentwicklerinnen und Softwareentwickler.

Hier finden Sie ein Video: Compiler einfach erklärt.

Und 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?