【发布时间】:2010-09-11 09:48:25
【问题描述】:
【问题讨论】:
【问题讨论】:
是的,还有:
ocamlc 是字节码编译器,ocamlopt 是本机代码编译器。
GCL 将 Common Lisp 编译为本机二进制文件。
F# 没有任何东西,因为据我所知,.NET 没有像 Joel 提到的本机编译器。其实CSML可以用来从ocaml调用C#,呃,不知道能不能把它编译成native code——好像不太可能——虽然文档有提到,但是很不完整。
【讨论】:
许多函数式语言的编译方式与其他任何语言一样。
例如在 Clojure 中:
有趣的一点是,所有这些都是动态发生的,即在程序执行期间的任何时候,您都可以编写新的源代码,将其传递给阅读器和各种编译步骤,然后运行新编译的本机代码 > 必须重新启动程序。这很重要,因为它启用了interactive development at the REPL,同时仍然提供了完全编译代码的好处。
【讨论】:
PLT Scheme 有一个 JIT 编译器。
Stalin 是一个 Scheme 编译器,它进行了可笑的激进优化。
除了CLISP 之外,我所知道的所有 Common Lisp 实现都编译为本机代码。 (但是,是否应该将 CL 视为函数式语言取决于术语“函数式”的含义。)
MLton 是标准 ML 的高度优化编译器。
函数式语言可以并且已经被非常有效地编译了一段时间。在这方面,命令式语言没有区别。
【讨论】:
这个帖子真的很不清楚。问题似乎是“是否有功能语言的编译器可以生成本机可执行文件而无需安装其他软件?”
答案通常是肯定的。例如,Haskell 具有生成本机二进制文件的 a compiler。许多其他函数式语言都有类似的编译器。
【讨论】: