Dynamic languages such as Perl, Python, JavaScript, Ruby, and PHP are becoming increasingly popular. Many dynamic language implementers choose a layered approach, where a guest language runs on a host virtual machine (VM), while implementing their language. Implementers have two possible execution choices on a host VM: hosted interpreters and host VM targeted compilers. Hosted interpreters run as a regular application on a host VM, whereas, host VM targeted compilers translate the hosted language programs to host VM's instruction set, and execute it on the host VM. Hosted interpreters are comparatively simpler to implement but suffer from poor performance. On the other hand, host VM targeted compilers are complex to build but lead to better performance.
In this dissertation, we explore hosted dynamic language interpreters targeting the Java virtual machine (JVM). The purpose of our research is to close the performance gap between hosted interpreters and host VM targeted compilers. Next, we implement a generic, high-performance profiler framework for hosted dynamic languages on a Java virtual machine with modest implementation effort. Our framework has a unique feature, which makes it possible to compare and analyze the programs implementing the same algorithms across different dynamic languages.