Interpreter: Unterschied zwischen den Versionen

Aus EINI
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „Ein '''Interpreter''' ist ein Programm, welcher ein Programm, geschrieben in einer für ihn entwickelten Programmiersprache, einliest und versucht das Programm…“)
 
 
(2 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
Ein '''Interpreter''' ist ein Programm, welcher ein Programm, geschrieben in einer für ihn entwickelten Programmiersprache, einliest und versucht das Programm auszuführen. Dabei liegt das Programm nicht in [[Maschinensprache]] vor, sondern in menschenlesbarer Quelltextform. Somit muss das Programm nicht vom Entwickler erst compiliert werden, sondern kann einfach direkt ausgeführt werden. Dies führt meistens jedoch zu größeren Nachteilen in der Performanz und Sicherheit der Programmiersprache.
+
Ein '''Interpreter''' ist ein [[Programm]], das ein anderes Programm ausführen kann.
 +
 
 +
=Vorteile gegenüber Compilern=
 +
 
 +
Für gewöhnlich wird ein menschenlesbares Programm von einem [[Compiler]] in ein von einer Maschine ausführbares Programm übersetzt. Dies begrenzt die Ausführung des Programmes jedoch ausschließlich auf die Maschine, für die sie übersetzt wurde. Mit einem '''Interpreter''' wird versucht diese Einschränkung zu umgehen.
 +
 
 +
Ein '''Interpreter''' kann ein speziell für ihn geschriebenes Programm einlesen und die im Programm enthaltenen Befehle ausführen.  
 +
Dies nennt man auch ''ein Programm interpretieren''.
 +
 
 +
Der '''Interpreter''' dient also als Schnittstelle zwischen dem Programm und der eigentlichen Maschine. Er kann auf Maschinen installiert werden. Alle für diesen '''Interpreter''' geschriebenen Programme können somit auf allen Maschinen ausgeführt werden, die den gleichen Interpreter installiert haben.
 +
 
 +
=Bytecodeinterpreter=
 +
 
 +
Meistens interpretiert ein '''Interpreter''' direkt die menschenlesbare Quellsprache. Das hat jedoch häufig zur Folge, dass der '''Interpreter''' zum einen sehr langsam läuft und zum anderen große Sicherheitslücken aufweist. Ein Programm in der Quellsprache zu interpretieren heißt nämlich meistens, den gesamten Quelltext und all seine Abhängigkeiten gleichzeitig analysieren zu müssen, anstatt sich auf die einfachen Maschineninstruktionen verlassen zu können.
 +
 
 +
Dieses Problem versuchen sogenannte '''Bytecodeinterpreter''', wie zum Beispiel die [[JVM]], zu umgehen, indem sie nicht den Code der Quellsprache direkt interpretieren, sondern eine '''Zwischensprache''' interpretieren. Diese ist wesentlich effizienter und sicherer auszuführen, muss allerdings erst aus dem Quellcode der Quellsprache generiert werden.
 +
 
 +
Die Vorteile des '''Interpreters''' bleiben jedoch erhalten, da das einmal übersetzte Programm immer noch auf allen Maschinen ausführbar ist, auf denen der passende Interpreter installiert ist.

Aktuelle Version vom 3. August 2016, 17:46 Uhr

Ein Interpreter ist ein Programm, das ein anderes Programm ausführen kann.

Vorteile gegenüber Compilern

Für gewöhnlich wird ein menschenlesbares Programm von einem Compiler in ein von einer Maschine ausführbares Programm übersetzt. Dies begrenzt die Ausführung des Programmes jedoch ausschließlich auf die Maschine, für die sie übersetzt wurde. Mit einem Interpreter wird versucht diese Einschränkung zu umgehen.

Ein Interpreter kann ein speziell für ihn geschriebenes Programm einlesen und die im Programm enthaltenen Befehle ausführen. Dies nennt man auch ein Programm interpretieren.

Der Interpreter dient also als Schnittstelle zwischen dem Programm und der eigentlichen Maschine. Er kann auf Maschinen installiert werden. Alle für diesen Interpreter geschriebenen Programme können somit auf allen Maschinen ausgeführt werden, die den gleichen Interpreter installiert haben.

Bytecodeinterpreter

Meistens interpretiert ein Interpreter direkt die menschenlesbare Quellsprache. Das hat jedoch häufig zur Folge, dass der Interpreter zum einen sehr langsam läuft und zum anderen große Sicherheitslücken aufweist. Ein Programm in der Quellsprache zu interpretieren heißt nämlich meistens, den gesamten Quelltext und all seine Abhängigkeiten gleichzeitig analysieren zu müssen, anstatt sich auf die einfachen Maschineninstruktionen verlassen zu können.

Dieses Problem versuchen sogenannte Bytecodeinterpreter, wie zum Beispiel die JVM, zu umgehen, indem sie nicht den Code der Quellsprache direkt interpretieren, sondern eine Zwischensprache interpretieren. Diese ist wesentlich effizienter und sicherer auszuführen, muss allerdings erst aus dem Quellcode der Quellsprache generiert werden.

Die Vorteile des Interpreters bleiben jedoch erhalten, da das einmal übersetzte Programm immer noch auf allen Maschinen ausführbar ist, auf denen der passende Interpreter installiert ist.