next up previous contents
Next: 5.2 VLISP in VISTA Up: 5 VLISP-Anbindung Previous: 5 VLISP-Anbindung

5.1 Vorteile von Interpretersprachen in interaktiven
Programmen

Einen HochsprachenInterpreter zu verwenden, bringt gegenüber der festen compilierenden Programmerstellung eine Reihe von Vorteilen.

Die Programmierung ist deutlich einfacher. Dies betrifft einerseits die Sprache an sich, die typisch wesentlich komfortabler zu codieren ist als z.B. C. Der Programmierer muß sich nicht um Speicherverwaltung kümmern (keine malloc/free-Fallstricke), Typüberprüfungen werden automatisch zur Laufzeit vorgenommen, wobei die gefährliche Umgehung des starren Typensystems durch den Programmierer (cast) unnötig (und unmöglich) ist. Weiters sind die Änderungs/Testzyklen wesentlich kürzer als bei compilierenden Sprachen: schlimmstenfalls muß nach Vornehmen von Ausbesserungen das Programm neu gestartet werden, oft genügt schon das Nachladen der geänderten Dateien.

Teile des Codes können zur Start- oder Laufzeit geladen werden. Mit einem Mechanismus zum Auswählen gewünschter Module ergibt sich die Möglichkeit, das Programm auf augenblickliche Bedürfnisse abzustimmen. Wenn für spezielle Anwendungsfälle angepaßte Module zur Verfügung stehen, kann ein Überladen des Programms mit unnötigen oder irreführenden Funktionen vermieden werden.

Darüber hinaus kann der Benutzer das Programm einfacher an seinen persönlichen Stil anpassen.

Ein weiterer Vorteil von Interpretersprachen sind flexible Datentypen. In LISP steht als universeller Gruppierungstyp die Liste zur Verfügung. Diese ordnet beliebige, voneinander völlig unabhängige Elemente in einer Sequenz an. Da ihre Elemente wiederum Listen sein dürfen, können auch Baumstrukturen aufgebaut werden.

In diesem Zusammenhang dürfen natürlich auch die Nachteile von interpretierten Programmen nicht verschwiegen werden. Der gravierendste ist sicher der beträchtliche Geschwindigkeitsverlust, der sich ergibt durch wiederholte Überprüfungen der Anzahl und des Typs der Daten, Einsammeln nicht mehr benötigter Ressourcen (garbage collection) und im Interpreter explizit ausprogrammierte Mechanismen für Unterprogrammaufrufe, Parameterübergabe etc., die sonst vom Prozessor direkt ausgeführt werden. Dazu kommt ein erhöhter Speicherbedarf zumindest für Variablen, der noch dadurch verstärkt wird, daß keine gemeinsame Code-Nutzung bei gleichzeitigem mehrfachen Laufen des Programms auf einer Maschine möglich ist.

Eine gewisse Verbesserung kann durch Verwendung von Zwischencodes erzielt werden, die Resultat einer Vorverarbeitung (bytecode compilation). sind. Dies ist nur in dem Maße sinnvoll, als dadurch nicht die vorteilhaften Interpretereigenschaften verloren gehen.

Einen weiterer Nachteil kann, vor allem für kommerzielle kopiergeschützte Programmpaketen, die Distribution des Quellcodes darstellen.

Um die Laufzeit der Programme in vertretbaren Grenzen zu halten, kann compilierter Code mit dem Interpreter-Code gemischt werden (s. Abschnitt 5.3).


next up previous contents
Next: 5.2 VLISP in VISTA Up: 5 VLISP-Anbindung Previous: 5 VLISP-Anbindung

Martin Knaipp
Wed Jun 12 15:41:33 MET DST 1996