【要約】WASM is not quite a stack machine [Hacker_News] | Summary by TechDistill
> Source: Hacker_News
Execute Primary Source
// Discussion Topic
WASMの設計思想と実行モデルの矛盾。
- ・WASMがスタックマシンとして定義されている理由。
- ・JITコンパイラによるスタックからレジスタへの変換プロセス。
- ・抽象化レイヤーがコンパイラ最適化に与える影響。
// Community Consensus
「スタックマシン」はあくまで記述形式の抽象化である、という認識で一致。
- ・賛成派:スタック形式はバイナリを簡潔にし、ポータビリティを確保する。
- ・実務派:実行時にはレジスタマシンとして振る舞うのが必然である。
- ・結論:スタックは「インターフェース」であり、実行エンジンはレジスタベースで動くのが実態。
// Alternative Solutions
- ・レジスタベースのバイトコード(LuaVM等)
- ・より低レイヤーなAOT(Ahead-of-Time)コンパイル手法
// Technical Terms
Senior Engineer Insight
> WASMを「スタックマシン」という言葉だけで理解するのは、現場では極めて危険だ。我々が求める低レイテンシを実現するのは、スタック操作そのものではなく、JITによる高度なレジスタ割り当てだ。実装者は、この抽象化の裏にある「変換コスト」を常に意識すべきである。WASMのポータビリティを享受しつつ、実行時のレジスタ効率を最大化するコンパイラの挙動を予測する能力が、実戦では求められる。