Virtual machines rule the world of programming right now: the Java Virtual Machine (JVM) and the .NET Common Language Runtime (CLR) are perhaps the two best-known, but Python, Ruby, and Chrome's V8 engine (powering Chrome and NodeJS) are all also virtual machines, and between those five, we have most of the world covered. But how do these machines work? On what principles do they operate? In short, how are they built? In this session, we'll do exactly that: starting from "File|New", we'll build a working interpreter for a (overly) simplistic virtual machine, and along the way, learn a great deal about how VMs work in general. But be warned! Learning this material could have the unexpected side effects, like great appreciation for other virtual machines and the start of a lifelong obsession.


Slides: HTML | PPTX


Published on 02 June 2023