Frage von KingOff, 52

Übersetzt Compiler den Programmcode in Maschinencode (wenn nein, was macht Compiler dann)?

Antwort
von TeeTier, 14

Ein Compiler ist einfach nur eine Form von "Übersetzer". Was er wohin übersetzt ist erst mal nicht näher definiert.

Wenn du eine Textdatei in PDF mithilfe von LaTeX umwandelst, wird sie auch (mehr oder weniger) kompiliert.

Und bei Programmiersprachen wird eben der Quelltext in irgendeine andere Form übersetzt. Das Ergebnis muss nicht mal ausführbar sein, denn du kannst z. B. C++ in Java übersetzen, was man dann aber vermutlich nicht mehr kompilieren nennt.

In deinem Fall ist vermutlich die Übersetzung von Quelltext in eine Form von achitektur-spezifischen Byte- oder Maschinen-Code gemeint.

PS: Ich weiß, das meine Definition hinkt, habe jetzt aber plötzlich keine Muße mehr, das Ganze näher auszuführen, denn ich habe jetzt irgendwie wahnsinnigen Appetit auf Johannesbeeren bekommen, und werde mir gleich im Anschluss einige davon einpfeifen! Das interessiert jetzt zwar keinen, ist mir aber egal ... :)

Antwort
von androhecker, 18

Kommt darauf an welcher Compiler.
Der Java Compiler (in deinen Tags) kompiliert den Code in Java Bytecode für die Java Virtual Machine.
Ein C oder C++ Compiler wie zum Beispiel GCC übersetzt direkt in Maschinensprache für die jeweilige Prozessorarchitektur.

Kommentar von KingOff ,

Aber allgemein übersetzt der Compiler in Maschinencode und dann der Interpreter leitet quasi die Befehle an CPU weiter zum Ausführen? Ist das so richtig? :-)

Kommentar von androhecker ,

Nein, ein Compiler ist einfach ein Übersetzer, von was zu was ist da nicht festgelegt. Ein Interpreter liest keinen Maschinencode, das macht keinen Sinn, das führt die CPU direkt aus.

Antwort
von CSHH1978, 33

Klassisch gesehen, ja.

Es gibt heute aber auch Compiler, deren Endergebnis keine Maschinesprache ist, sondern eine andere, meist einfachere Sprache als das Ausgangsprodukt.

Antwort
von Aero7, 33

Richtig :) 

Der Compiler übersetzt einfach gesagt, den menschlich verständlichen Programmcode einer Hochsprache (wie Java, C ...) in die Maschinensprache.

Kommentar von androhecker ,

Eben bei Java nicht, da ist das Resultat Java Bytecode.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten