Compiler und Interpreter Unterschied?

4 Antworten

Das ist alles nicht so leicht, aber ich versuch's mal, obwohl ich zugegebenermaßen kein Experte bin. ;)
_______________________________________

Wenn (virtuelle) Maschiene 2 auf (virtueller) Maschiene 1 läuft, dann ist

  • ein Interpreter ein Programm, welches auf Maschiene 1 läuft und ein in (der Sprache von) Maschiene 2 geschriebenes Programm interpretiert ("ausführt") und
  • ein Übersetzer ein Programm, welches auf Maschiene 2 läuft und das Programm in die Sprache von Maschiene 1 übersetzt.

Etwas abstrakt, aber ok. Ist halt so.
_______________________________________

Beispielsweise wird

  • Assemblersprache in Bytecode übersetzt (Programm auf Bytecode-Ebene (Assembler) ließt eine Datei (in Assemblersprache) ein und gibt eine andere Datei (Bytecode-Sprache) aus),
  • Bytecode aber von deinem Prozessor interpretiert (ein Programm, welches auf der virtuellen Maschiene "Mikroarchitektur" läuft ruft den bytecode ab und führt entsprechend Operationen durch).

    Im Software-Umfeld hat grtgrt die Unterschiede und Vor-/Nachteile bereits erläutert. Das Konzept von Interpretern und Compilern ist aber nicht auf diesen Bereich beschränkt.

Jedes Programm ist in einer bestimmten Sprache geschrieben, der Computer aber versteht nur Maschinensprache.

Ein Compiler (zu deutsch: ein Übersetzer) übersetzt das Programm in Maschinensprache.

Ein Interpreter dagegen, lies das Programm durch, versteht, was man darin für Befehle beschreibt und wird jeden dieser Befehle abbilden auf Code, der Teil des Interpreters ist und dann auch sofort ausgeführt wird. 

Vorteil des Compilers ist, dass die ursprüngliche Aufschreibung des Programms nur ein einziges Mal verstanden werden muss: durch den Compiler.

Benutzt man statt des Compilers einen Interpreter, muss die ursprüngliche Aufschreibung des Programms bei jedem seiner Aufrufe neu analysiert und verstanden werden. Das Programm arbeitet dann - aus Sicht seiner Nutzer - entsprechend langsamer.

Compiler generiert dir byte- oder maschinencode (vom sourcecode)

Interpreter interpretiert bytecode. Beispiel hierfür: java, c# vb.net...

"Compiler": Aufhäufer.

"Interpreter": Übersetzer.

Woher ich das weiß:Berufserfahrung – Software-Entwickler