这些函数式语言编译器都可以将函数式语言编译为 C 代码。 Google 的 NaCl SDK 可以编译 C。通过首先使用其他编译器之一进行编译并通过 google 的 Native Client SDK 运行结果来创建 Native Client 应用程序是否合理?
任何人都这样做过或有关于可能性、陷阱、限制的具体信息?
非常感谢!
最佳答案
我只能从对 Google NaCl 内部结构有些不确定的立场来回答,但我对 MLton 有一点了解。
从理论上讲,它应该有效。实际上,MLton 以非常具体的方式使用内存,并希望能够控制环境。我能看到的主要缺陷是 NaCl 是否限制了可能执行的某些类型的操作,以保证执行环境的完整性和安全性。 This link表明这可能不是问题。
此外,MLton 生成的 C 代码非常非常古怪。再一次,这完全取决于 NaCl 在环境的全部普遍性方面放弃了什么,以保证安全。您几乎无法控制 MLton 输出的代码,如果需要进行任何修改,重写运行时是一项艰巨的任务。我会看看它是否有效,然后开始调整运行时系统的任何导致问题的部分。
顺便说一句,如果您让 MLton 代码运行浏览器,我很想看到结果! :D
关于functional-programming - 我可以在 Google 的 Native Client 中使用 Gambit-C、Mlton 或 Chicken Scheme 吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16411722/