Interpreter

aus Freepedia, der freien Wissensdatenbank

Ein Interpreter (im Sinne der Softwaretechnik) ist ein Software-Programm, das einen Programm-Quellcode im Gegensatz zu Assemblern oder Compilern nicht in Maschinensprache umwandelt, sondern den Quellcode direkt einliest, analysiert und ausführt.

Der größte Nachteil der Interpretersprachen ist die im Vergleich zu compilierten Programmen deutlich langsamere Ausführungsgeschwindigkeit. Reine Interpreter lesen und analysieren den Quellcode eines Programmes und führen dann die entsprechenden Aktionen durch. Dies ist im Vergleich zu Compilersprachen, bei denen das Programm vor seiner Ausführung in Maschinencode übersetzt wird, der dann vom Prozessor direkt ausgeführt wird, sehr zeitaufwendig. Der Vorteil liegt darin, dass reine Interpreter auf jeder Rechnerarchitektur lauffähig sind wenn der Quellcode des Interpreters (der selbst häufig in C geschrieben ist) dort übersetzt werden kann.

Geschwindigkeitssteigerungen

Eine Kompromisslösung ist ein Just-In-Time-Compiler (JIT-Compiler), bei dem das Programm erst zur Laufzeit, jedoch direkt in Maschinencode übersetzt wird. Danach wird der übersetzte Code direkt vom Prozessor ausgeführt. Durch Zwischenspeicherung des Maschinencode müssen mehrfach durchlaufene Programmteile nur einmal übersetzt werden. Auch ermöglicht der JIT-Compiler eine stärkere Optimierung des Binärcodes. Allerdings sind solche Interpreter natürlich nur auf einer bestimmten Rechnerarchitektur lauffähig, weil sie Maschinencode für diese Architektur erzeugen.

Eine weitere Zwischenstufe sind Bytecode-Interpreter. Dabei wird der Quelltext zur Laufzeit vor seiner Ausführung in einen einfachen Zwischencode übersetzt, der dann von einem Interpreter, auch häufig als virtuelle Maschine bezeichnet, ausgeführt wird.

Interpretersprachen

Bekannte Interpretersprachen sind BASIC, Perl, Python, Ruby, PHP und viele andere. Auch die Skriptsprachen (wie z.B. Javascript) können zu den Interpretersprachen gezählt werden.

Bekannte Programmiersprachen, die üblicherweise in Bytecode übersetzt werden, sind Java, C-Sharp und Python.

Für manche Sprachen (etwa Smalltalk) gibt es je nach Anbieter Interpreter, Bytecode-Interpreter, JIT-Compiler oder Compiler in andere Sprachen (beispielsweise nach C Compiler oder .NET).

Der Übergang zwischen reinen Interpretern und reinen Compilern ist fließend.

Siehe auch



Views
'Persönliche Werkzeuge
Werkzeuge
Andere Sprachen
Ähnliche Links