Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Bringing the web up to speed with WebAssembly
Haas A., Rossberg A., Schuff D., Titzer B., Holman M., Gohman D., Wagner L., Zakai A., Bastien J.  PLDI 2017 (Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation, Barcelona, Spain, Jun 18-23, 2017)185-200.2017.Type:Proceedings
Date Reviewed: May 23 2018

Web browsers have become a primary method of delivering applications both inside corporate networks and from corporations to external customers and suppliers. Such applications require efficient and secure code, but the main language for browser-side programming, JavaScript, is neither. Various attempts to improve the situation, such as Java or native client (NaCl), have not altogether succeeded.

This paper describes a recent alternative, supported by all of the major browser companies--in fact, this paper’s authors are from Apple, Google, Mozilla, and Microsoft--that promises fast and safe browser-side code execution: WebAssembly. It is a binary code standard for a virtual machine (VM) intended to be embedded in a browser, as well as an accompanying “assembly-like” language specification. It is primarily intended as a compilation target for other languages, and promises safe, fast, platform-independent code that is easy to decode, validate, and compile.

The effort seems promising: by designing the language with formal semantics, the creators have achieved a clean design that is easy to reason about. By including structured control flow concepts in their VM, they have designed out many common errors, such as branching into the middle of a multibyte instruction. The authors note that “by design, unstructured and irreducible control flow using goto is impossible in WebAssembly,” a choice that should surely help make the VM easier to debug and secure. Code fetched over the web, is, in WebAssembly, validated by an “embarrassingly simple” type-checking system. Quite importantly for its initial acceptance, WebAssembly code can be called from, and can call out to, JavaScript.

This paper is a thorough and rigorous, if dense, introduction to what could be a breakthrough in browser-side coding for the web. (The authors note that WebAssembly is not restricted to running inside a browser, so other uses of it may develop as well.) Only time will tell if this ambitious project will succeed, but for anyone engaged in web development, it is certainly worth tracking.

Reviewer:  Eugene Callahan Review #: CR146043 (1808-0431)
Bookmark and Share
  Featured Reviewer  
 
Programming Languages (D.3 )
 
 
Client/ Server (C.2.4 ... )
 
 
Web-Based Services (H.3.5 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Programming Languages": Date
Pocket PC development in the enterprise: mobile solutions with Visual Basic and .NET
Forsberg C., Sjöström A., Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 2002.  432, Type: Book (9780201750799)
May 12 2004
Optimizing indirect branch prediction accuracy in virtual machine interpreters
Ertl M., Gregg D. ACM SIGPLAN Notices 38(5): 278-288, 2003. Type: Article
Nov 7 2003
C++ common knowledge: Essential Intermediate Programming
Dewhurst S., Addison-Wesley Professional, 2005. Type: Book (9780321321923)
May 20 2005
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy