Interpreter


Interpreter sind Programme, die im Gegensatz zu einem Compiler nicht den ganzen Code, sondern jede Zeile eines Quellprogramms einzeln auslesen und direkt auf der jeweiligen Plattform ausführen, ohne dass der Code zuvor übersetzt wird. Jede Analyse erfolgt demnach während der Laufzeit des jeweiligen Programms. Interpreter werden z.B. von Java genutzt.

Hintergrund[Bearbeiten]

Der Sinn von Interpretern besteht darin, dass ein Programm damit die Übersetzung des Quellcodes einfach „überspringen“ kann, indem die Anweisungen im Code direkt ausgeführt werden. Die Arbeit des Interpreters besteht folglich darin, genau die Routinen umzusetzen, die von den jeweiligen Entwicklern hinterlegt wurden.

Während der Interpretation von Quellcode sind Übersetzung und Abarbeiten des Codes keine getrennten Schritte. Eingabe und Quellcode werden gleichzeitig abgearbeitet. Jede Zeile mit einer Instruktion hat eine unmittelbare Aktion des Interpreters zur Folge. Man könnte demnach sagen, dass ein Interpreter gleich zwei Schritte auf einmal durchführt, nämlich Übersetzung und Umsetzung. Ein Arbeitsschritt folgt in logischer Reihenfolge laut Vorgaben des Quellcodes auf den nächsten.

600x400-Interpreter-01.png

Vor- und Nachteile[Bearbeiten]

Die Vorteile bei der Nutzung von Compiler bestehen darin, dass diese Programme vor allem beim Debugging, d.h. Auffinden von Programmierfehlern, sehr effizient sind, und zwar deshalb, weil sie bei Fehlern einfach nicht mehr weiterarbeiten. Stoppt der Interpreter also, können Programmierer sofort reagieren und den Fehler beheben. Nachteilig wirkt sich meist aus, dass der Interpreter deutlich langsamer ist als ein Compiler. Denn jede Zeile wird ausgelesen und sich wiederholende Elemente damit z.B. auch.

Dieser Nachteil bei der Arbeitsgeschwindigkeit kann durch Modifikationen wie z.B. JIT (Just-in-Time-Compiler) oder Bytecode-Interpreter teilweise ausgeglichen werden.

Interpretersprachen[Bearbeiten]

Programme, die in den folgenden Sprachen geschrieben wurden, können von Interpretern umgesetzt werden:

Weblinks[Bearbeiten]