Lecture 12: Virtual Machines
In this lecture we study the architecture of target machines for code generation. In particular, we look at the Java Virtual Machine.
Topics
- Virtual machines
- Stack machines vs register machines
- Linguistic abstractions
- memory and control-flow
- procedures
- objects
- Java Virtual Machine
- Architecture of the JVM
- JVM bytecode
- Threads and frames
- Operand stack
- Constant pool
- Local variables
- Heap
- Stack frames
Slides
Reading Material
-
Tim Lindholm, Frank Yellin, Gilad Bracha, and Alex Buckley (2015). The Java Virtual Machine Specification.
-
Bill Venners (2000). Inside the Java 2 Virtual Machine. McGraw-Hill.
-
Chris Lattner (2012). LLVM. In: The Architecture of Open Source Applications.