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