Cover by Diomidis Spinellis, Georgios Gousios

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

O'Reilly logo

Chapter 10. The Strength of Metacircular Virtual Machines: Jikes RVM

Ian Rogers

Dave Grove

 Principles and properties Structures
 VersatilityModule
 Conceptual integrity Dependency
Independently changeableProcess
 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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required