🔄 Programme ausführen – Übersetzen, Compiler und Interpreter

🧠 Programme sind für Menschen geschrieben. Computer können Programmiersprachen jedoch nicht direkt verstehen. Sie arbeiten ausschließlich mit sehr einfachen, maschinennahen Befehlen, die direkt vom Prozessor ausgeführt werden.

Damit ein Computer ein Programm ausführen kann, müssen die Anweisungen einer Programmiersprache daher übersetzt werden. Aus einer einzelnen Anweisung in einer Hochsprache entsteht dabei oft eine ganze Folge von einfachen Prozessor-Instruktionen.

Diese Übersetzungsarbeit übernehmen spezielle Programme. Man unterscheidet dabei vor allem zwischen Compilern und Interpretern.

🧱 Compiler – Übersetzen im Voraus Ein Compiler übersetzt ein Programm vollständig vor der Ausführung in Maschinencode. Das Ergebnis ist ein eigenständiges, ausführbares Programm.

Typische Eigenschaften:

  • Die Übersetzung erfolgt einmal vor dem Start.
  • Syntaxfehler werden früh erkannt.
  • Die Programme laufen meist sehr effizient.

🎮 Exkurs: Spieleentwicklung Leistungsintensive Spiele und Spiele-Engines werden häufig in C oder C++ entwickelt. Diese Sprachen werden kompiliert, weil Grafik, Physik und Spiellogik sehr schnell und direkt auf der Hardware ausgeführt werden müssen.

🧩 Interpreter – Übersetzen während der Ausführung Bei einem Interpreter werden Programmanweisungen schrittweise zur Laufzeit übersetzt und ausgeführt. Das Programm wird nicht vollständig im Voraus in Maschinencode umgewandelt.

Typische Eigenschaften:

  • Programme lassen sich leicht testen und verändern.
  • Änderungen wirken sofort.
  • Die Ausführung ist meist langsamer als bei kompiliertem Code.

🎮 Exkurs: Spielelogik In vielen Spielen werden zusätzliche Sprachen verwendet, um Spielregeln, Dialoge oder das Verhalten von Figuren zu steuern. Diese Teile werden oft zur Laufzeit ausgeführt, damit Anpassungen schnell möglich sind, ohne die gesamte Engine neu zu übersetzen.

🐍 Python zwischen Compiler und Interpreter Python ist eine allgemeine Programmiersprache, die beide Ansätze kombiniert.

  • Der Python-Code wird zunächst intern in einen Zwischencode (Bytecode) übersetzt.
  • Dieser Zwischencode wird anschließend von der Python-Laufzeitumgebung ausgeführt.

Python besitzt damit sowohl eine Compiler-Ebene als auch eine Interpreter-Ebene.

💡 Übersetzen von Programmen

Compiler und Interpreter übernehmen die Aufgabe, Programme so zu übersetzen, dass sie vom Computer ausgeführt werden können.

Unterschiedliche Ansätze führen zu unterschiedlichen Stärken – Geschwindigkeit auf der einen, Flexibilität auf der anderen Seite.