重複の可能性:
言語のブートストラップ
ターゲット言語 (たとえば、PyPy ) で記述された特定の言語のインタープリターを持つことの重要性は何ですか?
インタープリター自体を書くことはそれほど重要ではなく、C ではなく高級言語でインタープリターを書くことです。理想的には、そうすることで実装の詳細を変更し、インタープリターをよりモジュール化することができます。
PyPy の特定のケースでは、(R)Python でインタープリターとコア オブジェクトを作成すると、ターゲット (C、JVM、.NET、JavaScript など) の PyPy を再ターゲットでき、ガベージ コレクターなどの側面を置き換えることもできます。
そうする理由はさまざまだと思います。場合によっては、その言語が最良のツールであると本当に信じているためです...言語自体で言語インタープリターまたはコンパイラーを作成することは、ドッグフーディングの一種と見なすことができます。このテーマに本当に興味があるなら、次の記事は squeak の開発に関する非常に素晴らしい読み物です。squeak の現在のバージョンは、smalltalk で書かれた smalltalk ランタイムです。
追加の利点は、ターゲット言語に適したデバッガーとIDEを実装すると、それらがソース言語でも機能することです。
このようにして、ターゲット言語が真剣なビジネスであることを証明できます。これは、何かをコンパイルできるということは、それが優れた言語であることを示しているからです。
わかりました、C++ と Java も同様にコンパイラを生成します... したがって、その議論は見た目の半分にすぎないかもしれません。