Dr. Stefan Brunthaler

University of California at Irvine

NAMASTE: Adaptive Optimizations in Interpreters

Zusammenfassung

Interpreters inhabit a sweet spot on the performance/price curve of programming language implementations. This means that it is cheaper to implement an interpreter than a compiler, but on the other hand that compilers are usually faster than interpreters. This is particularly true for high abstraction-level interpreters, where many traditional optimizations are not effective. Consequently, such interpreters have a bad reputation for being too slow.
<br/>
<br/>
This talk focuses on a previously successful line of research in purely interpretative optimizations carried out at the Institute of Computer Languages (TU Vienna), and presents new results of continuing this line of research. In particular, we give a brief overview of purely interpretative inline caching using quickening and show how to leverage this foundation for a novel optimization: native machine-abstraction execution, or NAMASTE for short. We have implemented NAMASTE and report that this technique boosts our previously maximum reported speedup by more than 40%: from a factor of up to 2.4 to a factor of up to 3.4. Since this technique is purely interpretative, too, it offers the usual benefits of interpreters: ease of implementation, portability, and---compared to a just-in-time compiler, constant and low memory usage.

Vortragender

Stefan Brunthaler received his PhD in 2011 from the Vienna University of Technology under the supervision of Prof. Dr. Knoop, and has been working as Postdoctoral Scholar at the Secure Systems and Languages Laboratory at the University of California, Irvine, since April 2011. At the SSLLab his primary research interests are in the areas of language-based security (specifically researching the area of large-scale automated software diversity) and the efficient implementation of dynamically-typed programming languages, with a focus on Python. In addition, he worked on an early prototype of an "upcompiler", which refers to the decompilation of a legacy binary to Java source code.