Implementing a Simple JVM in Java and Rust


The JVM is a truly remarkable piece of software, but it is still just a computer program, not magic! In this talk, I will explain how we might start to implement a JVM from scratch, using the Java programming language. Fundamental concepts such as the bytecode interpreter, classfile parsing and memory management will be explained, using an open-source implementation as reference. We will build up a working interpreter capable of executing simple methods, and then discuss the limitations of the simple JVM.

The second half of the talk will be to show how the Rust programming language provides a good alternative implementation language for our simple JVM. We will showcase some basic Rust language features and show how they can be used to provide a version of our JVM that is much cleaner and easier to understand, even if you've never seen Rust code before!


Ben Evans
Twitter: @kittylyst
Co-founder of jClarity and a previous representative of the user community as a voting member on Java’s governing body — the JCP Executive Committee (for 6 years) — Ben is regarded as an authority within the Java community. He is the author of five books (‘The Well-Grounded Java Developer’ and the new editions of ‘Java in a Nutshell’, ‘Java: The Legend’ and ‘Optimizing Java’) and writes regularly for industry publications.


Grey WACCOM Building
Pearl West
1455 NW Irving Street
Portland, OR 97202