Compiler Construction bio photo

Compiler Construction

Twitter Github

Edit on GitHub

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.


  • 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


Compiler Construction | Lecture 12 | Virtual Machines from Eelco Visser

Reading Material

  1. Tim Lindholm, Frank Yellin, Gilad Bracha, and Alex Buckley (2015). The Java Virtual Machine Specification.

  2. Bill Venners (2000). Inside the Java 2 Virtual Machine. McGraw-Hill.

  3. Chris Lattner (2012). LLVM. In: The Architecture of Open Source Applications.