
Building a Register VM Interpreter - Part 10: Heap, Strings, and Hash Tables
This guide is about building a register-based VM interpreter from scratch. To escape this 64-bit limit, we have to look beyond the virtual stack and into the C heap.

This guide is about building a register-based VM interpreter from scratch. To escape this 64-bit limit, we have to look beyond the virtual stack and into the C heap.

This guide is about building a register-based VM interpreter from scratch. We will upgrade the VM to understand Jump instructions, and more importantly, we will teach the single-pass compiler how t...

This guide is about building a register-based VM interpreter from scratch. We will design the memory structures required to run a program, build the dispatch loop to fetch instructions, and write t...

This guide is about building a register-based VM interpreter from scratch. We need a mechanism to delay emitting bytecode until we know exactly where the data lives. We need a way to describe an ex...

This guide is about building a register-based VM interpreter from scratch. In a single-pass architecture, we do not build an AST. There are no intermediate tree nodes sitting in memory. Instead, we...

This guide is about building a register-based VM interpreter from scratch. This part will inplement a Disassembler for easy debugging.

This guide is about building a register-based VM interpreter from scratch. This part will define set of instructions and build Chunks in VM.

This guide is about building a register-based VM interpreter from scratch. It's time for us to turn to the front-end if the interpreter, transforming raw source code into the executable instructions.

This guide is about building a register-based VM interpreter from scratch. The value system is the foundational part to implement a dynamically typed languange.

This guide is about building a register-based VM interpreter from scratch. The first part is the introduction of the project and overall architecture of the interpreter.