質問: よくRubyやPHPはCで実装されている。などと書かれていますがあれはどういう意味なのでしょうか? Ruby(CRuby)の処理系(RubyMRI)はCで実装されているのはわかるのですが、言語本体がCで実装されているのでしょうか? またそうなるとCは何で実装されているのでしょうか? 加えて、最近の新しめな言語でSwiftなどは処理系はClang/LLVMなので確かC++?であるのはわかるのですがSwiftの言語自体は何で実装されているのでしょうか? もしかすると自分の中で言語仕様、言語本体、言語処理系の区別があまりついていないのかもしれません... 宜しくお願い致します。
回答: こんにちは。 > > よくRubyやPHPはCで実装されている。などと書かれていますがあれはどういう意味なのでしょうか? > > > これは正に「Ruby(CRuby)の処理系(RubyMRI)はCで実装されている」という意味です。 > > 言語仕様、言語本体、言語処理系 > > > 言語仕様はその言語の機能や表現方法を定義した仕様書ですね。英語等で書かれた普通の文書です。 その3つの用語で「言語本体」に当たる実体は「存在しない」が正解と思います。 「言語処理系」が言語仕様にしたがって処理を行うコンパイラやインタプリタ等のことを指します。 ちなみにブートストラップ問題と言う話があります。もしかするとこれを読まれると何か見えてくるかもしれません。 最初のコンパイラをどうやってコンパイルしたのか?という鶏が先か卵が先かの問題です。 私も実際を目の当たりにしたことはないですが、たぶん、最初のコンパイラはアセンブラで開発されただろうと思います。最初のアセンブラはどうしたのか?疑問ですが、一番最初のものは手でアセンブルしたのではないかと思います。