functional-programming - 我可以在 Google 的 Native Client 中使用 Gambit-C、Mlton 或 Chicken Scheme 吗

标签 functional-programming scheme ml google-nativeclient

这些函数式语言编译器都可以将函数式语言编译为 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/

相关文章:

debugging - 方案和Smalltalk

ocaml - ML 系列编译器是否对尾调用进行了任何复杂的优化?

haskell - 什么是 "free variable"?

c++ - 使用 lambda 将一种类型的 vector 映射到另一种类型

c++ - 使用 auto 的函数式 C++ 映射组合器

javascript - 如何对具有多个属性的数组进行分组

scheme - 从函数返回函数的目的是什么?

scheme - 方案中斐波那契尾递归的解释?

clojure - clojure 中是否有类似 ML 的数据类型声明和模式匹配的内容?

c++ - 向 C++ 程序员解释 ML 类型推断