WebAssembly 可以做 IO 吗?

Can WebAssembly do IO?

我一直在研究 WebAssembly,我有一个基本的(可能是幼稚的)问题。 IO 如何适应 WebAssembly/host VM 图片?似乎没有 WASM 结构(例如,操作码)来处理简单的 IO 操作,比如在屏幕上打印一些东西。在 WASM 的实现中,是否总是 期望是一种更高级的语言,如 Javascript,在 WASM 和主机 VM 之间进行调解以处理 IO 等?

你是对的,WebAssembly 本身没有IO 能力。它只能访问主机环境导入/导出的线性内存和函数(JavaScript 当托管在浏览器中时)。正是这些导入的函数让 WebAssembly 模块可以间接地进行 IO 操作。这是设计使然,WebAssembly 永远不会获得允许直接 IO 的指令。然而,随着主机绑定提议,间接 IO API 访问的机制在未来会变得更简单。