WebAssembly
可以让C/C++、Rust、Java、C#等多种高级语言编写的代码,在Web上以接近原生性能的方式运行,有越来越多的大型应用通过它跑在了网页上,例如:AutoCAD在线版、Figma在线版,还有在微信上支持运行Unity小游戏,底层的关键技术都是基于WebAssembly。
要了解WebAssembly
,先从JavaScript
的执行流程说起。
一 JavaScript的执行流程
1.1 编译型语言和解释型语言
编程语言按执行流程划分,可以分为编译型和解释型。
编译型语言在执行前,需要经过编译器的编译,生成机器能读懂的二进制文件,这样每次就直接运行改文件,而无需重新编译。例如C/C++、GO、Rust等都是编译型语言。
解释型语言则不需要事先编译,每次运行时由解释器对程序进行动态解释和执行。例如JavaScript、Python等都是解释型语言。
它们的执行流程如下。
从图中可以看出,在JavaScript
的执行过程中,