6

Joel Spolskyは、ランタイムに依存しないプログラムのネイティブコードバージョンを 賞賛しました。

関数型言語で利用できるネイティブコードコンパイラは何ですか?

4

4 に答える 4

11

この投稿は本当に非常に不明確です。問題は、「追加のソフトウェアをインストールする必要なく、ネイティブの実行可能ファイルを生成できる関数型言語用のコンパイラはありますか?」ということのようです。

一般的に、答えはイエスです。たとえば、Haskellにはネイティブ バイナリを生成するコンパイラがあります。他の多くの関数型言語にも同様のコンパイラがあります。

于 2008-09-19T19:28:11.457 に答える
6

ええ、また:

ocamlcはバイトコード コンパイラでありocamlopt、ネイティブ コード コンパイラです。 GCLCommon Lisp をネイティブ バイナリにコンパイルします。

Joelが言及しているように、私が知っている限り、.NETにはネイティブコンパイラがないため、F#には何もありません。実際、CSML を使用して ocaml から C# を呼び出すことができますが、これをネイティブ コードにコンパイルできるかどうかはわかりません。

于 2008-09-19T19:49:13.717 に答える
1

PLTスキームにはJITコンパイラがあります。

スターリンは、途方もなく積極的な最適化を行うスキームコンパイラです。

CLISPを除いて私が知っているすべてのCommonLisp実装は、ネイティブコードにコンパイルされます。(ただし、CLを関数型言語と見なすべきかどうかは、「関数型」という用語の意味によって異なります。)

MLtonは、StandardML用に高度に最適化されたコンパイラです。

関数型言語は、非常に効果的にコンパイルされる可能性があり、しばらくの間コンパイルされてきました。この点で命令型言語に違いはありません。

于 2008-09-20T21:39:55.563 に答える