很明显啊,这是一个英文单词,并且是一个组合词,
web + assembly
assembly 很多中国人不知道什么意思,但是我要是说出他的翻译,你一定立马知道了,他就是汇编语言
顾名思义 WebAssembly 就是 web 上的汇编语言
所以理论上所有可以编译成为汇编语言的高级语言都可以通过编译器 转换成 wasm
wasm 有两个后缀.wat 和 .wasm
wat 是 WebAssembly text 文本呈现模式
内容大概是这个样子
(module (func $mul (param $factor1 i32) (param $factor2 i32) (result i32) local.get $factor1 local.get $factor2 i32.mul) (export "mul" (func $mul)))
wasm 是二进制格式
![[Pasted image 20240216144348.png]]
你可以使用Emscripten 来编译高级语言的代码到 wasm
$ emcc hello.c -o hello.html
这会返回编译后的二进制文件和一个 html 封装容器,你可以通过打开 html 的控制台来查看 wasm 的执行情况
或者也可以使用 js 封装容器,你可以在 nodejs 环境中直接运行,我一般使用 vscode 的 run code 插件
$ emcc hello.c -o hello.js
这就是 wasm 的用法,由于它可以提供接近原生汇编级别的高性能,常被用来计算在 js 中高消耗的任务,这也有助于维护移动设备电量,提供更好的运行体验