|Principles and properties||Structures|
|Automatic propagation||Data access|
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.
The issue of how to develop a new programming language is a ...