官术网_书友最值得收藏!

  • Learn WebAssembly
  • Mike Rourke
  • 256字
  • 2021-08-13 15:38:48

Portable target for compilation

WebAssembly was designed from the beginning with portability in mind. Portability in this context means that WebAssembly's binary format can be executed efficiently on a variety of operating systems and instruction set architectures, on and off the web. The specification for WebAssembly defines portability in the context of an execution environment. WebAssembly was designed to run efficiently in environments that meet certain characteristics, most of which are related to memory. WebAssembly's portability can also be attributed to the absence of a specific API around the core technologies. Instead, it defines an import mechanism where the set of available imports is defined by the host environment.

In a nutshell, this means that WebAssembly isn't tied to a specific environment, such as the web or desktop. The WebAssembly Working Group has defined a Web API, but that's separate from the Core Specification. The Web API caters to WebAssembly, not the other way around.

The compilation aspect of the definition indicates that WebAssembly will be simple to compile down to its binary format from source code written in high-level languages. The MVP focuses on two languages, C and C++, but Rust can also be used given its similarities to C++. Compilation will be achieved through the use of a Clang/LLVM backend, although we'll be using Emscripten in this book to generate our Wasm modules. The plan is to eventually add support for other languages and compilers (such as GCC), but the MVP is focused on LLVM.

主站蜘蛛池模板: 资兴市| 巴林右旗| 黄龙县| 周至县| 雅安市| 九江县| 阿拉善右旗| 建宁县| 五家渠市| 扎鲁特旗| 河池市| 天津市| 濮阳市| 聊城市| 瓮安县| 怀远县| 遂平县| 玉龙| 平安县| 红桥区| 澎湖县| 晴隆县| 章丘市| 金门县| 新竹县| 黎城县| 苍梧县| 昭平县| 苏尼特右旗| 潮州市| 西吉县| 舞钢市| 绩溪县| 五莲县| 锦州市| 乌拉特后旗| 蓬安县| 丰宁| 九龙坡区| 始兴县| 大宁县|