
Appendix D
JVM, Class Files, and the CLEmitter
D.1 Introduction
In the first instance, our compiler’s target is the Java Virtual Machine (JVM), a virtual
byte-code machine. In this appendix, we provide a brief description of the JVM, and then
describe the CLEmitter, a high-level interface for producing the byte code.
D.2 Java Virtual Machine (JVM)
The JVM is an abstract architecture that can have any number of implementations. For
example, Oracle has implemented a Java Run-time Environment (JRE
1
) that interprets
JVM programs, but uses Hotspot technology for further compiling code that is executed
repeatedly to native machine code. We say it is a byte-c ...