论文标题:The Jalapeno virtual machine
心得:
Related work中提到一个概念,Java in Java,就是用Java语言写JVM。其他一些JVM都是用Smalltalk或者其他native语言写的。
很明显,一种让这个新写的JVM跑起来的方法,就是让这个JVM跑在另一个JVM之上,这样就有两层的解释,必然影响JVM的性能。
另一种方法就是文中提到的Jalapeno这个JVM使用的方法:bootstrapping,从而使这个JVM不依赖于其他的JVM。
具体怎么做呢:
bootstrapping is the process of writing a compiler (or assembler) in the target programming language which it is intended to compile. Applying this technique leads to a self-hosting compiler.
http://en.wikipedia.org/wiki/Bootstrapping_%28compilers%29
就是那一个语言去写这个语言的编译器。wikipedia上把这个问题通俗化为“先有鸡还是先有蛋”这个问题。