一、编译和解释
编程语言分为两类:
编译型:如C/C++
解释型:如Java/Python/JS
编译型语言,代码需要经过下面的步骤转成机器码:
文本 -> 汇编语言 -> 可运行机器码
文本经过此法分析、语法分析、语义分析转成汇编语言,其实解释性语言也是需要经过这个步骤。然后再把汇编语言翻译成机器码,汇编和机器码是两个比较接近的语言,只是汇编不需要去记住哪个数字代表哪个指令。
二、WebAssembly介绍
WASM优势在于它不需要解释器,可以直接转成汇编代码,所以运行速度提升明显。
Mozilla公司最早开发的asm.js,后来慢慢主流的浏览器都支持asm,并发展成WASM。它的特点是强类型,一般认为WASM是JS的一个子集,它的特点是强类型,并且只支持整数、浮点数、函数调用、数组、算数计算等。
注意:WebAssembly 只能在 Node8.0 以上版本正常工作。
三、WASM demo
1、先安装一个转换工具,将asm文件转成wasm文件
mac:
cmake make Clang/XCode
winddows:
cmake make VS2015以上
再安装一个
WebAssembly binaryen(asm2wasm)
2、写add.asm.js,按照asm