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