javascript - WebAssembly 中应该如何编码递归?

标签 javascript webassembly

我正在编译a language of pure total functions到 WebAssembly。最复杂的可用构造是原始递归。我做了一些实验,似乎唯一可行的方法是构建一个蹦床抽象机,它在某种字节码上运行,将递归转换为迭代。有更好的策略吗?

最佳答案

嗯,你当然可以在 Wasm 中简单地使用递归,但它不会是尾递归。从您的问题中尚不完全清楚这是否是一项要求。

具有显式尾部调用的扩展已 proposed对于瓦斯姆来说。该提案目前处于 Wasm 提案流程的“第 3 阶段”,并已在 V8 和(正在进行的)Safari 中实现,这意味着它有望很快实现标准化。

在那之前,是的,如果您依赖尾部调用语义,则必须使用某种蹦床。

关于javascript - WebAssembly 中应该如何编码递归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74592589/

相关文章:

Ajax 调用后 Javascript/Jquery 停止工作

javascript - 限制用户在 ngModel 的 Angular 2 中输入最多 5 位整数,最多 2 位小数

JavaScript 代码无法检查单选按钮

javascript - AngularJS ng-repeat 更新不起作用

javascript - 尝试运行 wasm 函数时出现模块未定义错误

Blazor webassembly 应用程序和检测浏览器功能

authentication - Blazor WebAssembly SignalR 身份验证

javascript - 使用 Safari 和 HTML5 在 iPhone 上录音

javascript - 从 HTML 上的图像序列创建视频

if-statement - 我应该如何在 web assembly 中实现 "else if"?