C言語

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

      • -

SunのJavaは、コンパイラJavaで書かれていて、JVMC++というのをどこかで見た(本当かな?)のですが、もし本当なら、上と同じですね。