Bringing the Web up to Speed with WebAssembly

WebAssembly asks how a browser can run low-level code from an untrusted download without tying that code to one language, CPU, or browser. Read it to see how a typed stack format, structured branches, bounded linear memory, and streaming validation make compact portable code safe enough to compile near native speed.

Reading focus: Why WebAssembly uses an implicit typed stack for compact transport while production engines compile that stack away into registers and machine code. How structured control flow and a single-pass type validator rule out arbitrary jumps, incompatible stack joins, and invalid indirect calls before execution. Why linear memory isolates module bytes from code and engine state, how an out-of-bounds access traps, and which host, feature, and 2017 benchmark limits remain.

PLDI 2017. Haas, Rossberg, Schuff, Titzer, Holman, Gohman, Wagner, Zakai, and Bastien. 35 min read, easy difficulty.