Institut für Computersprachen
Programmiersprachen und Übersetzer
| Diplomarbeit | |
| Titel | Optimizing Interpreters with Superinstructions |
| Autor | Eller, Helmut |
| Erscheinungsjahr | 2005 |
| Klasse | Sonstiges |
| Erscheinungsort | Wien |
| Bestelldatum | |
| Inventardatum | |
| Abstract | Superinstructionen können helfen, um Interpreter für virtuelle Maschinen (VM) schneller zu machen. Eine Superinstruction ist eine Kombination von einfacheren VM-Instructionen, die schneller ausgeführt werden kann, als die äquivalente Sequenz von einfachen VM-Instructionen, weil einige Kosten der Interpretation, wie Kosten für Instruction-Dispatch und Argument-fetching, verringert werden. Die vorliegende Arbeit diskutiert im Wesentlichen folgende drei Themen. Erstens beschreibe ich einige Heuristiken für die Auswahl von Superinstruktionen. Ich habe die Heuristiken für Forth und Java Programme evaluiert. Wenn die Anzahl der erlaubten Superinstruktionen sehr groß (> 1000) war, dann lieferte die Heuristik, welche alle möglichen Teilsequenzen bis zur Länge 4 auswählte, die besten Ergebnisse. War die erlaubte Anzahl jedoch geringer, schnitt eine Heuristik, die kurze Sequenzen bevorzugte oder Sequenzen, die in vielen verschiedenen Programmen und Basic-Blocks vorkommen, am besten ab. Zweitens vergleiche ich ein einfaches Greedy-Verfahren und einen optimalen Algorithmus zur Überdeckung eines Programms mit Superinstruktionen. Ich habe festgestellt, dass der Greedy-Algorithmus fast optimale Ergebnisse erzielt. Drittens vergleiche ich Superinstruktionen mit nicht-sequentiellen Mustern. In meinen Experimenten haben Superinstruktionen etwas besser abgeschnitten als die nicht-sequentiellen Muster. |
| Status | Verfügbar |