Unless one is familiar with how Java Virtual Machines work, this is a difficult read. Even so, the benefits for having a self-hosting JVM doesn't seem apparent. It could be because I didn't fully comprehend the details. But from what I can understand, here are the benefits of Jikes RVM:
1. Simplifies the development model compared to using C/C++.
2. Allows developers to use language features in order to make better optimizations.
3. Helps detect & fix bugs in the JVM.
4. Provides the ability to user better libraries and abstractions.
5. Facilitates communication between the runtime and the application.
It's hard to see these benefits when the article doesn't explicitly mention success stories in industry. Sure they mention that hundreds of researchers in over 100 institutions are part the development community, but that's too vague.
What I wasn't able to understand was what is the difference between self-hosting and metacircularity? According to the article, they mean the same thing. According to Wikipedia, it means,
"A meta-circular evaluator is a special case of a self-interpreter in which the existing facilities of the parent interpreter are directly applied to the source code being interpreted, without any need for additional implementation"
Can anyone provide a better explanation?
Also, I was confused on the discussion of how they bootstrapped Jikes RVM. Are all JVMs written in C considered to be bootstrap JVMs within the context of creating self-hosting JVMs?
Finally, the most surprising thing I found about the article was that metacircular runtime systems have been around since Lisp and Smalltalk were developed. In addition, Just-In-Time compilations and Adaptive optimizations have appeared in Smalltalk since the 1980's. Now they're becoming mainstream with their inclusion in Java, Python, and the .NET framework. Interesting to observe that many of us view these as "new" concepts.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment