Share
VIDEOS 1 TO 50
WebAssembly Demystified
WebAssembly Demystified
Published: 2017/11/05
Channel: Coding Tech
Compiling for the Web with WebAssembly (Google I/O
Compiling for the Web with WebAssembly (Google I/O '17)
Published: 2017/05/18
Channel: Google Chrome Developers
WebAssembly In Action
WebAssembly In Action
Published: 2017/08/24
Channel: Coding Tech
WebAssembly: Real World Applications
WebAssembly: Real World Applications
Published: 2017/12/27
Channel: Coding Tech
GOTO 2017 • WebAssembly: What and What Next? • Ben Titzer & Andreas Rossberg
GOTO 2017 • WebAssembly: What and What Next? • Ben Titzer & Andreas Rossberg
Published: 2018/02/14
Channel: GOTO Conferences
WebAssembly: A game changer for the Web | Mozilla
WebAssembly: A game changer for the Web | Mozilla
Published: 2017/03/07
Channel: Mozilla Hacks
Dan Callahan: Practical WebAssembly | JSConf Budapest 2017
Dan Callahan: Practical WebAssembly | JSConf Budapest 2017
Published: 2017/12/01
Channel: JSConf
Real World WebAssembly (Chrome Dev Summit 2017)
Real World WebAssembly (Chrome Dev Summit 2017)
Published: 2017/10/24
Channel: Google Chrome Developers
Using WebAssembly With NodeJS
Using WebAssembly With NodeJS
Published: 2018/01/04
Channel: Coding Tech
Why WebAssembly Is A Game Changer For The Web
Why WebAssembly Is A Game Changer For The Web
Published: 2017/12/02
Channel: Coding Tech
WebAssembly overview - It
WebAssembly overview - It's cool, it's really fast.
Published: 2017/04/17
Channel: Indigo Code
WebAssembly ? Web et assembleur ? WTF ! (Nicolas Decoster )
WebAssembly ? Web et assembleur ? WTF ! (Nicolas Decoster )
Published: 2017/12/06
Channel: GDG France
Talk #43 - webAssembly - web compilada (convidada)
Talk #43 - webAssembly - web compilada (convidada)
Published: 2017/04/10
Channel: Pagar.me Talks
WebAssembly and the Future of the Web [I]
WebAssembly and the Future of the Web [I]
Published: 2017/10/16
Channel: node.js
[DevFest Nantes 2017] Past, Present, and Future of Web Assembly
[DevFest Nantes 2017] Past, Present, and Future of Web Assembly
Published: 2017/10/30
Channel: GDG France
How Webassembly Will Change the Way You Write Javascript | Seth Samuel
How Webassembly Will Change the Way You Write Javascript | Seth Samuel
Published: 2016/11/23
Channel: EmpireJS
Lin Clark: A Cartoon Intro to WebAssembly | JSConf EU 2017
Lin Clark: A Cartoon Intro to WebAssembly | JSConf EU 2017
Published: 2017/05/16
Channel: JSConf
Will Web Assembly Replace JavaScript?
Will Web Assembly Replace JavaScript?
Published: 2016/11/18
Channel: Chris Hawkes
WebAssembly and Node.js - Ben Smith
WebAssembly and Node.js - Ben Smith
Published: 2017/11/08
Channel: nearForm Ltd
Working on WebAssembly in C++ (Ep. 1)
Working on WebAssembly in C++ (Ep. 1)
Published: 2017/11/24
Channel: Ben Smith
WebAssembly Demo: Zen Garden (Epic)
WebAssembly Demo: Zen Garden (Epic)
Published: 2017/03/07
Channel: Mozilla Hacks
WebAssembly Tutorial - An Introduction to WebAssembly
WebAssembly Tutorial - An Introduction to WebAssembly
Published: 2017/06/20
Channel: Fullstack Academy
What WebAssembly means for React - Lin Clark aka @linclark at @ReactEurope 2017
What WebAssembly means for React - Lin Clark aka @linclark at @ReactEurope 2017
Published: 2017/05/21
Channel: ReactEurope
WebAssembly by Brian Sletten
WebAssembly by Brian Sletten
Published: 2017/08/01
Channel: Devoxx Poland
WebAssembly: An Introduction
WebAssembly: An Introduction
Published: 2018/02/03
Channel: Andrew Stewart
"Hello, World!" In WebAssembly
"Hello, World!" In WebAssembly
Published: 2017/12/30
Channel: Daniel Duan
1.2 Знакомство с WebAssembly
1.2 Знакомство с WebAssembly
Published: 2017/12/12
Channel: EPAM RYAZAN
¿Que es Webassembly? | Javascript vs Webassembly
¿Que es Webassembly? | Javascript vs Webassembly
Published: 2017/10/15
Channel: GioCode
WebAssembly Fundamentals
WebAssembly Fundamentals
Published: 2017/04/21
Channel: Web Games Day
WIll Web Assembly Replace Javascript in 2018
WIll Web Assembly Replace Javascript in 2018
Published: 2017/06/01
Channel: CodingPhase
WebAssembly In Action | With Chris Nelson
WebAssembly In Action | With Chris Nelson
Published: 2017/08/25
Channel: Code Eg
Webassembly Tutorial with a Basic Demo
Webassembly Tutorial with a Basic Demo
Published: 2017/09/26
Channel: Allied Consultants (S&M)
Live AMA: WebAssembly
Live AMA: WebAssembly
Published: 2017/12/15
Channel: Catchpoint Systems
Rustlang Project: Todo App (Yew Framework and Web Assembly)
Rustlang Project: Todo App (Yew Framework and Web Assembly)
Published: 2017/12/28
Channel: Tensor Programming
EpicZenGarden, WebAssembly and WebGL 2 in Firefox 52
EpicZenGarden, WebAssembly and WebGL 2 in Firefox 52
Published: 2017/03/12
Channel: Kie 7077
Vigneshwer Dhinakaran: Hacker
Vigneshwer Dhinakaran: Hacker's guide to Web Assembly
Published: 2018/01/27
Channel: DevConf
Advanced JS performance with V8 and Web Assembly (Chrome Dev Summit 2016)
Advanced JS performance with V8 and Web Assembly (Chrome Dev Summit 2016)
Published: 2016/11/12
Channel: Google Chrome Developers
WebAssembly - pseudo-tutorial (not very in depth)
WebAssembly - pseudo-tutorial (not very in depth)
Published: 2017/04/17
Channel: Indigo Code
WebAssembly: Under the hood with Mozilla
WebAssembly: Under the hood with Mozilla
Published: 2017/03/07
Channel: Mozilla Hacks
Frank Rehberger - Rust - embedding WebAssembly for scripting
Frank Rehberger - Rust - embedding WebAssembly for scripting
Published: 2018/02/06
Channel: Rust
WebAssembly - Uma Nova Linguagem para a Web
WebAssembly - Uma Nova Linguagem para a Web
Published: 2017/09/17
Channel: Colóquios de Ciência da Computação
Phoomparin Mano: For The Love Of Web Assembly - Lightning Talk - JSConf.Asia 2018
Phoomparin Mano: For The Love Of Web Assembly - Lightning Talk - JSConf.Asia 2018
Published: 2018/02/21
Channel: JSConf
Popping WebAssembly Hype | Coder Radio 284
Popping WebAssembly Hype | Coder Radio 284
Published: 2017/11/21
Channel: Jupiter Broadcasting
GOTO 2017 • We Want WebAssembly • Ben Smith
GOTO 2017 • We Want WebAssembly • Ben Smith
Published: 2017/05/30
Channel: GOTO Conferences
KharkivJS #5 2015 — Sergey Rubanov — WebAssembly
KharkivJS #5 2015 — Sergey Rubanov — WebAssembly
Published: 2015/12/03
Channel: KharkivJS Community
Web Apps can’t really do *that*, can they? - Steve Sanderson
Web Apps can’t really do *that*, can they? - Steve Sanderson
Published: 2017/07/10
Channel: NDC Conferences
Javascript en el 2018 | Frameworks, Libraries, Apis, Web Assembly, Nodejs, Mongodb, y Más
Javascript en el 2018 | Frameworks, Libraries, Apis, Web Assembly, Nodejs, Mongodb, y Más
Published: 2017/12/26
Channel: Fazt
Ziv Birer - What is “Web Assembly”   | AngularUP 2017
Ziv Birer - What is “Web Assembly” | AngularUP 2017
Published: 2017/09/24
Channel: AngularUP
Preview of the WebAssembly Explorer
Preview of the WebAssembly Explorer
Published: 2017/03/06
Channel: Mozilla Hacks
CppCon 2016: Dan Gohman “C++ on the Web: Let
CppCon 2016: Dan Gohman “C++ on the Web: Let's have some serious fun."
Published: 2016/10/08
Channel: CppCon
NEXT
GO TO RESULTS [51 .. 100]

WIKIPEDIA ARTICLE

From Wikipedia, the free encyclopedia
Jump to: navigation, search
WebAssembly
Web Assembly Logo.svg
Paradigm Imperative, unstructured, expression-oriented
Developer W3C
First appeared March 2017; 11 months ago (2017-03)
Typing discipline Static
OS Web
License Apache License
Filename extensions .wat, .wasm
Website webassembly.org
Influenced by
asm.js, PNaCl

WebAssembly (wasm, WA) is a web standard that defines a binary format and a corresponding assembly-like text format for executable code in Web pages. It is meant to enable executing code nearly as fast as running native machine code. It was envisioned to complement JavaScript to speed up performance-critical parts of web applications and later on to enable web development in other languages than JavaScript.[1][2][3] It is developed at the World Wide Web Consortium (W3C) with engineers from Mozilla, Microsoft, Google and Apple.[4]

It is executed in a sandbox in the web browser after a formal verification step. Programs can be compiled from high-level languages into wasm modules and loaded as libraries from within JavaScript applets.

Design[edit]

WebAssembly is a portable stack machine[5] which is designed to be faster to parse than JavaScript, as well as faster to execute,[6] and to enable very compact code representation.

History[edit]

Vendor-specific precursor technologies are Google Native Client (NaCl) and asm.js.[1][7] The initial implementation of WebAssembly support in browsers was based on the feature set of asm.js.[8] It was first announced on 17 June 2015[9] and on 15 March 2016 was demonstrated executing Unity's Angry Bots in Firefox,[10] Chromium, Google Chrome,[11] and Microsoft Edge.[12] In March 2017, the design of the minimum viable product was declared to be finished and the preview phase ended.[13] In late September 2017, Safari 11 was released with support. As of February 2018, the website Can I use tracks 71% global web browser support for WebAssembly.[14]

Support[edit]

Mozilla declared support "in all major browsers",[15] e.g. it's also been enabled by default in Edge 41.[16] For backward compatibility, wasm can be compiled into asm.js by a JavaScript applet (a so-called polyfill) and executed on incompatible browsers this way.[17]

Emscripten can compile to wasm[13] using LLVM in the backend.

Its initial aim is to support compilation from C and C++,[6] though support for other source languages such as Rust is also emerging.[18] After the minimum viable product (MVP) release, there are plans to support garbage collection[19] which would make WebAssembly a compilation target for garbage collected programming languages like Java and C#.

Representation[edit]

In March 2017, the WebAssembly Community Group reached consensus on the initial (MVP) binary format, JavaScript API, and reference interpreter.[20] It defines a WebAssembly binary format, which is not designed to be used by humans, as well as a human-readable linear assembly bytecode format that resembles traditional assembly languages.

The table below represents three different views of the same source code input from the left, as it is converted to a wasm intermediate representation, then to wasm binary:[21]

C (input source) text "linear assembly bytecode" (intermediate representation) WASM binary encoding (binary shown below in hexadecimal)
int factorial(int n) {
  if (n == 0)
    return 1;
  else
    return n * factorial(n-1);
}
get_local 0
i64.eqz
if i64
    i64.const 1
else
    get_local 0
    get_local 0
    i64.const 1
    i64.sub
    call 0
    i64.mul
end
20 00
50
04 7E
42 01
05
20 00
20 00
42 01
7D
10 00
7E
0B

At the moment, the tooling of the wasm compiler system internally uses s-expressions (for parsing simplicity as well as extra information that "linear assembly bytecode" representation does not contain) to handle intermediate code. An example is shown below (updated to the current format):[22]

(module
  (type $FUNCSIG$dd (func (param f64) (result f64)))
  (import "global.Math" "exp" (func $exp (param f64) (result f64)))
  (memory 256 256)
  (export "memory" (memory 0))
  (func $doubleExp (param $0 f64) (result f64)
    (f64.mul
      (call $exp
        (get_local $0)
      )
      (f64.const 2)
    )
  )
  (export "doubleExp" (func $doubleExp))
)

See also[edit]

Literature[edit]

References[edit]

  1. ^ a b Lardinois, Frederic (2015-06-17). "Google, Microsoft, Mozilla And Others Team Up To Launch WebAssembly, A New Binary Format For The Web". TechCrunch. Retrieved 2017-12-24. 
  2. ^ Cimpanu, Catalin (2015-06-18). "Mozilla, Microsoft, Google, and Apple Join Efforts to Create a Binary File Format for the Web". softpedia. Retrieved 2017-12-23. 
  3. ^ Hoffmann, Moritz (2015-06-23). "Turbo-Boost für JavaScript: Eric Elliott über WebAssembly". JAXenter (in German). Retrieved 2017-12-23. 
  4. ^ Bright, Peter (18 June 2015). "The Web is getting its bytecode: WebAssembly". Ars Technica. Condé Nast. 
  5. ^ "Design Rationale". GitHub / WebAssembly / design. 1 October 2016. 
  6. ^ a b "WebAssembly High-Level Goals". GitHub / WebAssembly / design. 11 December 2015. 
  7. ^ Avram, Abel (2017-05-31). "Google Is to Remove Support for PNaCl". InfoQ. Retrieved 2017-12-22. 
  8. ^ "WebAssembly: a binary format for the web". ②ality – JavaScript and more. 18 June 2015. 
  9. ^ "Launch bug". GitHub / WebAssembly / design. 11 June 2015. 
  10. ^ Wagner, Luke (14 March 2016). "A WebAssembly Milestone: Experimental Support in Multiple Browsers". Mozilla Hacks. 
  11. ^ Thompson, Seth (15 March 2016). "Experimental support for WebAssembly in V8". V8 Blog. 
  12. ^ Zhu, Limin (15 March 2016). "Previewing WebAssembly experiments in Microsoft Edge". Microsoft Edge dev blog. 
  13. ^ a b Krill, Paul (2017-03-06). "WebAssembly is now ready for browsers to use". InfoWorld. Retrieved 2017-12-23. 
  14. ^ "WebAssembly". Can I use. Retrieved 2017-12-27. 
  15. ^ "WebAssembly support now shipping in all major browsers". The Mozilla Blog. Retrieved 2017-11-21. 
  16. ^ "Introducing new JavaScript optimizations, WebAssembly, SharedArrayBuffer, and Atomics in EdgeHTML 16". Microsoft Edge Dev Blog. Retrieved 2017-11-21. 
  17. ^ Bright, Peter (2015-06-18). "The Web is getting its bytecode: WebAssembly". Ars Technica. Retrieved 2017-12-23. 
  18. ^ Krill, Paul (2017-11-29). "Direct WebAssembly compilation comes to Rust language". InfoWorld. Retrieved 2017-12-24. 
  19. ^ Krill, Paul (2017-10-26). "What's next for WebAssembly: GC, threads, debugging". TechWorld. Retrieved 2017-12-24. 
  20. ^ "Roadmap". WebAssembly. March 2017. 
  21. ^ jfbastien; rossberg-chromium; kripken; titzer; s3ththompson; sunfishcode; lukewagner; flagxor; enricobacis; c3d; binji; andrewosh (9 March 2017). "Text Format". WebAssembly/design. GitHub. 
  22. ^ Larsen, Nick (24 June 2016). "Build Your First Thing With WebAssembly". Culture of Development: The Pit of Success. 

This article incorporates text from a free content work. Licensed under Apache License 2.0 Licence statement: Text Format, jfbastien; rossberg-chromium; kripken; titzer; s3ththompson; sunfishcode; lukewagner; flagxor; enricobacis; c3d; binji; andrewosh, GitHub. WebAssembly/design.

To learn how to add open-license text to Wikipedia articles, please see Wikipedia:Adding open license text to Wikipedia.
For information on reusing text from Wikipedia, please see the terms of use.

External links[edit]

Disclaimer

None of the audio/visual content is hosted on this site. All media is embedded from other sites such as GoogleVideo, Wikipedia, YouTube etc. Therefore, this site has no control over the copyright issues of the streaming media.

All issues concerning copyright violations should be aimed at the sites hosting the material. This site does not host any of the streaming media and the owner has not uploaded any of the material to the video hosting servers. Anyone can find the same content on Google Video or YouTube by themselves.

The owner of this site cannot know which documentaries are in public domain, which has been uploaded to e.g. YouTube by the owner and which has been uploaded without permission. The copyright owner must contact the source if he wants his material off the Internet completely.

Powered by YouTube
Wikipedia content is licensed under the GFDL and (CC) license