C言語
[id:lethevert:20061129:p2]
言葉が足らなかったような気がするので補足。
たとえば、Cleanのコンパイラは、フロントエンドのCleanCompilerはCleanで、バックエンドのCodeGeneratorはCで書かれているのですが、これは技術的な制約のためではないと思うのです。というのは、すべてCleanでかかれていることを想像すると、深刻な問題があるのです。
それはつまり、どうやって新しいマシンにインストールするか、ということです。Windowsのように、ネイティブコードの移植性の高いプラットフォームならば、適切な環境でコンパイルしたネイティブコードを配布すれば十分ですが、そうでない環境では、CleanのコンパイラをコンパイルするためにCleanのコンパイラが必要という問題を解決しないといけないです。
CodeGeneratorがCで書かれている事で、その問題を回避できているのです。
-
-
- -
-
SunのJavaは、コンパイラがJavaで書かれていて、JVMがC++というのをどこかで見た(本当かな?)のですが、もし本当なら、上と同じですね。