Interpreters are easy to implement and can be made portable with only little extra effort. Therefore, many popular programming languages choose an interpreter instead of a compiler as an execution platform. While the characteristics of interpreters are regarded as an upside, usually, their major downside is considered to be sub-optimal performance. Fortunately, in 1984 L. Peter Deutsch and Allan Schiffman introduced the modern concept of dynamic compilation sub-systems to the programming language implementation community, which subsequently became a success story, resulting in today's high performance just-in-time compilers for Java and .NET. Unfortunately, on the other hand, deciding to implement a dynamic compilation sub-system involves trading off the valuable innate characteristics of interpreters.<br />This dissertation a) explains why for some interpreters known techniques do not yield reported speedups, b) provides orientation for focusing on other optimization targets, and c) presents several purely-interpretative optimization techniques that result in substantial speedups-we report speedups of up to 2.4176-while simultaneously preserving the ease of implementation and portability characteristics.
en
Interpretierer sind einfach zu implementieren und können mit marginalem Zusatzaufwand portabel gemacht werden. Daher werden viele populäre Programmiersprachen interpretiert und nicht traditionell kompiliert. Im Allgemeinen sind diese Eigenschaften von Interpretierern vorteilhaft, jedoch verfügen Interpretierer über einen gravierenden Nachteil: sub-optimale Ausführungsgeschwindigkeit.<br />Glücklicherweise wurde 1984 von L. Peter Deutsch und Allan Schiffman das Verfahren zur dynamischen Übersetzung eingeführt und in weiterer Folge popularisiert, sodass wir heute über hoch-performante dynamische Übersetzter, wie zum Beispiel die Java virtual machine oder die .NET Umgebung verfügen. Unglücklicherweise bedeutet die Entscheidung einen dynamischen Übersetzer zu implementieren gleichzeitig auch, die ursprünglichen Eigenschaften eines Interpretierers, mithin die Einfachheit der Implementierung und deren Portabilität, größtenteils aufzugeben.<br />Die vorliegende Dissertation a) klärt auf warum für bestimmte Arten von Interpretierern bereits bekannte Techniken nicht ihr übliches Potential entfalten, b) gibt eine Orientierung welche Arten von Optimierungen höheres Potential bieten und c) präsentiert mehrere rein-interpretative Optimierungstechniken mit substantiellem Optimierungs-Potential - Geschwindigkeitssteigerungen bis zu einem Faktor von 2.4176 sind möglich - jedoch ohne die Eigenschaften von Interpretierern zu beeinträchtigen.<br />