Share
VIDEOS 1 TO 50
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 Demystified
WebAssembly Demystified
Published: 2017/11/05
Channel: Coding Tech
WebAssembly In Action
WebAssembly In Action
Published: 2017/08/24
Channel: Coding Tech
WebAssembly: A game changer for the Web | Mozilla
WebAssembly: A game changer for the Web | Mozilla
Published: 2017/03/07
Channel: Mozilla Hacks
Real World WebAssembly (Chrome Dev Summit 2017)
Real World WebAssembly (Chrome Dev Summit 2017)
Published: 2017/10/24
Channel: Google Chrome Developers
WebAssembly overview - It
WebAssembly overview - It's cool, it's really fast.
Published: 2017/04/17
Channel: Indigo Code
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
WebAssembly and the Future of the Web [I]
WebAssembly and the Future of the Web [I]
Published: 2017/10/16
Channel: node.js
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
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 for the rest of us - Jan-Erik Rediger - Codemotion Amsterdam 2017
WebAssembly for the rest of us - Jan-Erik Rediger - Codemotion Amsterdam 2017
Published: 2017/07/03
Channel: Codemotion
WebAssembly (and You!)
WebAssembly (and You!)
Published: 2017/01/17
Channel: Fullstack Academy
Will Web Assembly Replace JavaScript?
Will Web Assembly Replace JavaScript?
Published: 2016/11/18
Channel: Chris Hawkes
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 Tutorial - An Introduction to WebAssembly
WebAssembly Tutorial - An Introduction to WebAssembly
Published: 2017/06/20
Channel: Fullstack Academy
WebAssembly Demo: Zen Garden (Epic)
WebAssembly Demo: Zen Garden (Epic)
Published: 2017/03/07
Channel: Mozilla Hacks
Can Webassembly Replace Java ?? Why Webassembly In 2 Minute in India Introduced in Google I/O 2017
Can Webassembly Replace Java ?? Why Webassembly In 2 Minute in India Introduced in Google I/O 2017
Published: 2017/07/08
Channel: Code Eg
WebAssembly Fundamentals
WebAssembly Fundamentals
Published: 2017/04/21
Channel: Web Games Day
Introduction to Web Assembly - How WebAssembly Will Work and Why You Should Use It
Introduction to Web Assembly - How WebAssembly Will Work and Why You Should Use It
Published: 2016/03/01
Channel: Fullstack Academy
WebAssembly - pseudo-tutorial (not very in depth)
WebAssembly - pseudo-tutorial (not very in depth)
Published: 2017/04/17
Channel: Indigo Code
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
WebAssembly: Under the hood with Mozilla
WebAssembly: Under the hood with Mozilla
Published: 2017/03/07
Channel: Mozilla Hacks
Preview of the WebAssembly Explorer
Preview of the WebAssembly Explorer
Published: 2017/03/06
Channel: Mozilla Hacks
GOTO 2017 • We Want WebAssembly • Ben Smith
GOTO 2017 • We Want WebAssembly • Ben Smith
Published: 2017/05/30
Channel: GOTO Conferences
NYLUG Presents: Luke Wagner -on- WebAssembly: A New Compiler Target For The Web
NYLUG Presents: Luke Wagner -on- WebAssembly: A New Compiler Target For The Web
Published: 2016/06/14
Channel: NYLUG
Webassembly Tutorial with a Basic Demo
Webassembly Tutorial with a Basic Demo
Published: 2017/09/26
Channel: Allied Consultants (S&M)
WebAssembly In Action | With Chris Nelson
WebAssembly In Action | With Chris Nelson
Published: 2017/08/25
Channel: Code Eg
WebAssembly: the Final Frontier - Albert Brand
WebAssembly: the Final Frontier - Albert Brand
Published: 2017/07/04
Channel: AmsterdamJS
WIll Web Assembly Replace Javascript in 2018
WIll Web Assembly Replace Javascript in 2018
Published: 2017/06/01
Channel: CodingPhase
Popping WebAssembly Hype | Coder Radio 284
Popping WebAssembly Hype | Coder Radio 284
Published: 2017/11/21
Channel: Jupiter Broadcasting
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 Browser
WebAssembly and the Future of the Browser
Published: 2016/09/23
Channel: Fullstack Academy
Ziv Birer - What is “Web Assembly”   | AngularUP 2017
Ziv Birer - What is “Web Assembly” | AngularUP 2017
Published: 2017/09/24
Channel: AngularUP
2015 LLVM Developers’ Meeting: Jf Bastien & Dan Gohman “WebAssembly: Here Be Dragons"
2015 LLVM Developers’ Meeting: Jf Bastien & Dan Gohman “WebAssembly: Here Be Dragons"
Published: 2015/11/05
Channel: LLVM
WebAssembly: birth of a virtual ISA (Ben Smith) - Full Stack Fest 2016
WebAssembly: birth of a virtual ISA (Ben Smith) - Full Stack Fest 2016
Published: 2016/09/14
Channel: Codegram Technologies
WebAssembly and Node.js - Ben Smith
WebAssembly and Node.js - Ben Smith
Published: 2017/11/08
Channel: nearForm Ltd
Martin Becze: Interplanetary OS
Martin Becze: Interplanetary OS
Published: 2017/02/25
Channel: MetaMask
BrisJS April - WebAssembly 101 - Ash Kyd
BrisJS April - WebAssembly 101 - Ash Kyd
Published: 2017/04/05
Channel: BrisJS
Angry Bots WebAssembly Demo Speedrun in 50s
Angry Bots WebAssembly Demo Speedrun in 50s
Published: 2016/03/15
Channel: Christopher Serr
Introduction to WebAssembly Tooling | Harvest
Introduction to WebAssembly Tooling | Harvest
Published: 2017/09/26
Channel: Kames Cox-Geraghty
EpicZenGarden, WebAssembly and WebGL 2 in Firefox 52
EpicZenGarden, WebAssembly and WebGL 2 in Firefox 52
Published: 2017/03/12
Channel: Kie 7077
¿Que es Webassembly? | Javascript vs Webassembly
¿Que es Webassembly? | Javascript vs Webassembly
Published: 2017/10/15
Channel: GioCode
Debian - Firefox - WebAssembly - Unity3D
Debian - Firefox - WebAssembly - Unity3D
Published: 2016/03/15
Channel: Prot EuPhobos
Will Web Assembly Replace JavaScript
Will Web Assembly Replace JavaScript
Published: 2017/02/20
Channel: Elijah Daniel
Unity3D,  my first webassembly test
Unity3D, my first webassembly test
Published: 2017/02/04
Channel: Dimitri Tarasenko
A cartoon intro to WebAssembly - Lin Clark - Gamedev.js Warsaw #5
A cartoon intro to WebAssembly - Lin Clark - Gamedev.js Warsaw #5
Published: 2017/06/02
Channel: Gamedevjs
Sergey Rubanov "Real world WebAssembly"
Sergey Rubanov "Real world WebAssembly"
Published: 2017/07/16
Channel: OdessaJS Conference
Ingvar Stepanyan - Interaction with real-world JavaScript from compiled Rust
Ingvar Stepanyan - Interaction with real-world JavaScript from compiled Rust
Published: 2017/05/14
Channel: Rust
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
Typing discipline Static
License Apache License
Filename extensions .wast, .wasm
Website webassembly.org
Influenced by
asm.js, PNaCl

WebAssembly or wasm is a low-level bytecode format for in-browser client-side scripting, evolved from JavaScript. Its initial aim is to support compilation from C and C++,[1] though other source languages such as Rust are also supported.[2]

Design[edit]

WebAssembly is a portable stack machine[3] which is designed to be faster to parse than JavaScript, as well as faster to execute.[1]

History[edit]

WebAssembly was first announced on 17 June 2015[4] and on 15 March 2016 was demonstrated executing Unity's Angry Bots in Firefox,[5] Chromium, Google Chrome,[6] and Microsoft Edge.[7] In late September 2017, Safari 11 was released with support. As of October 2017, the website, Can I use, tracks 61.34% global web browser support for WebAssembly, led by Chrome and Firefox.[8] Mozilla declared support "in all major browsers",[9] e.g. it's also been enabled by default in Microsoft Edge 41.[10]

Development[edit]

The initial implementation of WebAssembly support in browsers will be based on the featureset of asm.js.[11] After the minimum viable product (MVP) release, there are plans to support garbage collection[12][13] which would make WebAssembly a compilation target for garbage collected programming languages like Java and C#. The team working on WebAssembly includes employees of Mozilla, Microsoft, Google and Apple.[14]

Representation[edit]

In March 2017, the WebAssembly Community Group reached consensus on the initial (MVP) binary format, JavaScript API, and reference interpreter.[15] 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 3 different views of the same source code input from the left, as it is converted to a wasm intermediate representation, then to wasm binary:[16]

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):[17]

(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]

References[edit]

  1. ^ a b "WebAssembly High-Level Goals". GitHub / WebAssembly / design. 11 December 2015. 
  2. ^ "Announcing Rust 1.14". The Rust Programming Language Blog. 22 December 2016. 
  3. ^ "Design Rationale". GitHub / WebAssembly / design. 1 October 2016. 
  4. ^ "Launch bug". GitHub / WebAssembly / design. 11 June 2015. 
  5. ^ Wagner, Luke (14 March 2016). "A WebAssembly Milestone: Experimental Support in Multiple Browsers". Mozilla Hacks. 
  6. ^ Thompson, Seth (15 March 2016). "Experimental support for WebAssembly in V8". V8 Blog. 
  7. ^ Zhu, Limin (15 March 2016). "Previewing WebAssembly experiments in Microsoft Edge". Microsoft Edge dev blog. 
  8. ^ "WebAssembly". Can I use. Retrieved 2017-10-29. 
  9. ^ "WebAssembly support now shipping in all major browsers – The Mozilla Blog". The Mozilla Blog. Retrieved 2017-11-21. 
  10. ^ "Introducing new JavaScript optimizations, WebAssembly, SharedArrayBuffer, and Atomics in EdgeHTML 16 - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog". blogs.windows.com. Retrieved 2017-11-21. 
  11. ^ "WebAssembly: a binary format for the web". ②ality – JavaScript and more. 18 June 2015. 
  12. ^ "WebAssembly/design". GitHub. Retrieved 15 November 2017. 
  13. ^ "WebAssembly/gc". Github. 
  14. ^ Bright, Peter (18 June 2015). "The Web is getting its bytecode: WebAssembly". Ars Technica. Condé Nast. 
  15. ^ "Roadmap". WebAssembly. March 2017. 
  16. ^ jfbastien; rossberg-chromium; kripken; titzer; s3ththompson; sunfishcode; lukewagner; flagxor; enricobacis; c3d; binji; andrewosh (9 March 2017). "Text Format". WebAssembly/design. GitHub. 
  17. ^ 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 freely licensed text to Wikipedia articles, 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