Jump to Content

Bringing the Web up to Speed with WebAssembly

Alon Zakai
Andreas Haas
Andreas Rossberg
Ben Titzer
Dan Gohman
JF Bastien
Luke Wagner
Michael Holman
ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), ACM, Barcelona, Madrid (2017)
Google Scholar

Abstract

The rapid improvement in JavaScript virtual machines combined with maturation of Web platform tools has given rise to sophisticated and demanding web applications such as interactive 3D maps, audio and video software, and games. The increasing ambition of these applications has made the efficiency and security of mobile code on the web more important than ever. Yet JavaScript has inconsistent performance and a number of other pitfalls, especially as a compilation target. To address this problem, engineers from all major browser vendors have risen to the challenge and collaboratively designed a new low-level byte code for the web called WebAssembly. It offers compact representation, fast and simple validation and compilation, low to no-overhead safe execution, and fluid interoperability with the web platform, including direct access to JavaScript and Web APIs. Rather than committing to a specific programming model, WebAssembly is an abstraction over modern hardware, making it both language- and platform-independent. We describe the motivation, design and formal semantics of WebAssembly and provide some preliminary experience with implementations.

Research Areas