3

鉴于WASM2 月份达到了MVP,是否有人花时间尝试通过使用 WASM 来实际学习/教授 WebAssembly 的更高级别的组装方面的可行性?

在浏览了一些资料之后,似乎它仍然针对 C/C++ 开发(可能是由于仍然存在的潜在通量状态?)并且没有真正的资料直接讨论使用 WASM 就学习汇编而言编程原理。

WASM (至少可以)独特地适合于学习和教学,以一种非常通用的方式组装自身,如果需要,以后可以扩展到特定的硬件。学习 WASM 本身对于未来的一般工作和编写有趣且独特优化的程序可能很有价值。

看到人们对使用 WASM 复活的旧演示场景之类的东西感兴趣甚至可能很有趣……

4

2 回答 2

1

我不确定 Wasm 是否适合首先学习汇编语言。虽然它提炼了现代 CPU 中可用的许多基本操作,但它也是一种更高级别的抽象。例如:

  • 它是一个堆栈机器。

  • 它有一组无限的虚拟寄存器。

  • 它具有结构化的控制流。

  • 它不提供对堆栈的访问。

  • 它不提供对代码的访问。

  • 它是打字的。

  • 将来它可能会获得其他更高级的功能。

其中许多是使 Wasm安全可移植的先决条件,这本身与普通的汇编语言非常不同。

(我碰巧同意那些说“WebAssembly”有点用词不当的人的观点——实际上是“Web”部分和“Assembly”部分。这是对 JavaScript 的一个游戏,以前被称为“网络”,因为它无处不在。)

于 2017-04-25T17:27:20.833 回答
0

WASM 就像普通的处理器组装一样,但是...对于 web :-) 同样,99.9% 的人如果不想学习组装,就不需要学习 WASM。

如果您想跳入低级别的东西,特别是如果您要处理编译器,WASM 将非常有用。WASM 将是一种方便的移植方式,例如,将 C++ 编译器的后端移植到浏览器中。因此,您编译到 x86/x64/ARM/etc 的同一个 GCC/LLVM 也可以为 Web 编译。

请注意,除了名称 Web“程序集”之外,这与 x86 或 x64 等 CPU 架构没有太大关系。所以“用 WASM 学习组装”不需要学习“裸机”。有时可能会有点混乱。

于 2017-04-25T17:34:16.947 回答