Optimization of Dynamic Languages Using Hierarchical Layering of Virtual Machines
Alexander Yermolovich, Christian Wimmer, Michael Franz: Optimization of Dynamic Languages Using Hierarchical Layering of Virtual Machines. In Proceedings of the Dynamic Languages Symposium, pages 79–88. ACM Press, 2009. doi:10.1145/1640134.1640147Download as PDF
© ACM, 2009.
Abstract
Creating an interpreter is a simple and fast way to implement a dynamic programming language. With this ease also come major drawbacks. Interpreters are significantly slower than compiled machine code because they have a high dispatch overhead and cannot perform optimizations. To overcome these limitations, interpreters are commonly combined with just-in-time compilers to improve the overall performance. However, this means that a just-in-time compiler has to be implemented for each language.
We explore the approach of taking an interpreter of a dynamic language and running it on top of an optimizing trace-based virtual machine, i.e., we run a