1. ホーム
  2. c

[解決済み] gcc CコンパイラはC言語で書かれているのですか?

2023-03-02 19:29:55

質問

gcc CコンパイラはC言語で書かれているのですか?それともアセンブリで書かれているのですか?コンパイラがC言語で書かれている場合、コンパイラのコードをコンパイルするために使用されるコンパイラは何ですか?

どのように解決するのですか?

gcc に関する具体的な履歴は、以下のページにあります。 GCC ウィキ . より一般的なポイントは、一般にコンパイラは、それ自身をコンパイルできるほど強力になるまで、もともと他のコンパイラと一緒にコンパイルされるということです。あるいは、アセンブラであなたの機能のサブセットを扱える基本的なコンパイラを書き、そこから構築することも可能です。しかし、これもまた、もうほとんど必要ありません。様々な言語のコンパイラがたくさんあります。gcc はもともといくつかのコンパイラから選んでビルドしていましたし、RMS は少なくとも彼の最初の開発時には Pastel コンパイラを使っていたと言っています。

C コンパイラが C 言語で書かれているという要件はないことを覚えておいてください。あるプラットフォーム用のコンパイラーは、もともとそのプラットフォームで書かれているという要件はありません (組み込みシステムは、ほとんど常に他のシステムでコンパイルされます)。ですから、自分自身をブートストラップする方法はたくさんあるのです。

この質問には、コンパイラをブートストラップする最初のインスタンスに関連する、いくつかの興味深い微妙な点があります。もしあなたが非常に賢いのであれば、そのブートストラップを利用して、次のことを行うことができます。 信じられないような、素晴らしい、そして恐ろしいことを .