Programmübersetzer: Compiler und Interpreter im Vergleich

Eingeordnet in Informatik

Geschrieben am in Deutsch mit einer Größe von 3,27 KB

Programmübersetzer: Compiler und Interpreter

Was sind Programmübersetzer?

Programme müssen in Maschinencode übersetzt werden, um von einem Computer ausgeführt werden zu können. Diese Aufgabe wird von Programmübersetzern durchgeführt.

Arten von Programmübersetzern

Programme können je nach Übersetzungsprozess in zwei Haupttypen unterteilt werden:

  • Interpreter

    Interpreter nehmen das ursprüngliche Programm (den Quellcode) und übersetzen sowie führen jede Anweisung einzeln und direkt aus.

  • Compiler

    Compiler nehmen den Quellcode, übersetzen ihn vollständig in eine ausführbare Form und führen dann das übersetzte Programm aus.

Der Kompilierungsprozess: Objektcode und Linken

Nach dem Kompilieren eines Programms entsteht der sogenannte Objektcode. Dieser ist ein neues Programm, das in einer der Maschinensprache sehr ähnlichen Sprache geschrieben ist, aber noch nicht direkt von der CPU ausgeführt werden kann. Nach dem Kompilierungsvorgang ist es notwendig, den Objektcode in ausführbaren Maschinencode umzuwandeln (dieser Schritt wird als Linken bezeichnet).

Vor- und Nachteile der Übersetzungsmethoden

Vorteile und Nachteile von Compilern

  • Die Übersetzung erfolgt nur einmal. Nach der Übersetzung kann das Programm beliebig oft ohne erneute Übersetzung ausgeführt werden.
  • Eine Optimierung des resultierenden Maschinencodes ist möglich und oft automatisch. Dies verbessert die Programmausführung, da der Compiler eine globale Sicht auf den Code hat und somit Optimierungspotenziale erkennen kann.
  • Der Quellcode muss zur Ausführung nicht vorhanden sein.
  • Schnellere Programmausführung.
  • Geringere Portabilität: Der nach Kompilierung und Linken erzeugte Maschinencode ist für einen bestimmten CPU-Typ optimiert und kann daher nicht auf anderen Architekturen ausgeführt werden.
  • Syntaxfehler müssen vollständig korrigiert werden, bevor das Programm ausgeführt werden kann.

Vorteile und Nachteile von Interpretern

  • Der Quellcode wird bei jeder Ausführung neu übersetzt.
  • Eine Optimierung des Maschinencodes ist nicht möglich, da keine globale Sicht auf das Programm besteht.
  • Der Quellcode muss bei jeder Ausführung vorhanden sein. Möchte man Algorithmen schützen, sodass niemand den Quellcode einsehen kann, ist dies mit Interpretern nicht möglich.
  • Langsamere Ausführung, da die Übersetzung simultan erfolgt.
  • Höhere Portabilität: Wenn ein Interpreter für verschiedene Architekturen verfügbar ist, kann ein Programm ohne spezielle Anpassungen auf jeder dieser Architekturen ausgeführt werden.
  • Syntaxfehler werden erst zur Laufzeit erkannt, wenn die Ausführung des Programms die fehlerhafte Stelle erreicht. Die Ausführung wird vorübergehend beendet, der Fehler kann behoben und die Ausführung fortgesetzt werden.

Verwandte Einträge: