Chapter 10. The Strength of Metacircular Virtual Machines: Jikes RVM
| Principles and properties | Structures | ||
|---|---|---|---|
| Versatility | ✓ | Module | |
| Conceptual integrity | Dependency | ||
| ✓ | Independently changeable | ✓ | Process |
| Automatic propagation | Data access | ||
| ✓ | Buildability | ||
| Growth accommodation | |||
| Entropy resistance |
Running code in a managed runtime environment is the prevalent choice for today’s developers. In fact, a large fraction of all developed code is for a managed runtime environment. However, although runtime environments are increasingly popular, the majority are written in a different language than the one the runtime environment supports. In the case of Java Virtual Machines, which act as a runtime environment for Java applications, the programming languages C and C++ are most commonly used to implement the runtime environment itself.
In this chapter, we present an overview of a mature virtual machine called Jikes RVM, which is written in Java to run Java applications. Not only is the runtime system written in Java, but all other components of the architecture are written in Java. These components include adaptive and optimizing compilation systems, threading, exception handling, and garbage collection. We present an overview of these systems here, and will explain why having a singular vision of language, runtime, and implementation leads to systems that are inherently more compelling and potentially more optimal.
Background
The issue of how to develop a new programming language is a ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access