I am going to write a series of articles exploring how to build a WebAssembly (Wasm) interpreter.
Wasm has been an interest of mine for quite some time. It is bytecode for the web. Take code from a language like C or Rust and compile it to Wasm bytecode. Then, the code can be executed in the browser or a standalone runtime.
Large corporations have taken absolutely huge codebases, like Adobe Photoshop, and gotten them running in the browser by using Wasm.
First Steps
The Wasm spec is the primary resource for implementing the interpreter.
The Introduction and especially the Introduction - Overview are required reading. The Overview describes all the major language concepts and explains how the spec is organized by semantic phases.
For specifications, I recommend understanding the overview structure of the document. Some specs separate out implementation and usage details based on context. In the beginning, it is far more valuable to understand how to find the desired information than to understand all the details.