大众普遍认为 WebAssembly (Wasm) 是基于栈的虚拟机,类似于 JVM。然而,本文作者通过深入分析指令集发现,Wasm 与传统的栈机器存在根本差异。传统的栈机器通常拥有 dup、swap 等指令来直接操作栈内数据以实现复用,而 Wasm 几乎完全缺乏这些操作。在处理复杂计算(如 x²)时,Wasm 必须依赖局部变量,这使其行为模式实际上更接近寄存器机器。文章指出,Wasm 仅是采用了逆波兰表示法(后缀法)进行编码的寄存器机器,这一视角对于理解编译器优化和 Wasm 的底层语义至关重要。
原文链接:Hacker News

IT资源栈
评论前必须登录!
立即登录 注册