web-dev-qa-db-ja.com

Cコンパイラの歴史は何ですか?

「デニス・リッチーがC言語を開発した」と言うとき、彼はC言語で書かれたソースコードをコンパイルできるコンパイラーを(「すでに開発された」他の言語を使用して)作成したことを意味しますか?もしそうなら、彼が最初のCコンパイラを書くために使用した言語は何でしたか?コンパイラはプログラムであることを理解しています。現在入手可能なCコンパイラを使用して、C言語用の別のコンパイラを作成できます。あれは正しいですか?

24
KawaiKx

wiki から:

Ritchieは、Cプログラミング言語の作成者およびUnixオペレーティングシステムの主要開発者として、またCに関する決定的な本の共著者として最もよく知られています。

また wiki から:

Dennis Ritchieによって作成された最初のCコンパイラは、再帰降下パーサーを使用し、PDP-11に関する特定の知識を組み込み、生成されたアセンブリ言語コードを改善するためにオプションのマシン固有のオプティマイザに依存していました。

最初のCコンパイラも彼によってアセンブリで記述されました。

このページ ベルラボの質問のほとんどに回答します。

23
karlphillip

歴史のレッスンについては、こちらをご覧ください: http://www.livinginternet.com/i/iw_unix_c.htm

PDP-11コンピューターがBell Labsに到着したとき、デニスリッチーはBを基にして、Cという名前の新しい言語を作成しました。この言語は、トンプソンの簡潔な構文の好みを継承し、高水準の機能とオペレーティングシステムのプログラミングに必要な詳細な機能が強力に組み合わされています。システム。 Unixのコンポーネントのほとんどは、最終的にCで書き直され、1973年にカーネル自体で最高潮に達しました。

また、これは興味深いかもしれません: http://cm.bell-labs.com/cm/cs/who/dmr/chist.html

9
abalogh

Dennis Ritchieが使用した bootstrapping 。ブートストラップは単純なアイデアです。アセンブリで最初の単純なコンパイラを開発し、この単純なコンパイラを使用して、ターゲット言語(のサブセット)で記述された完全なコンパイラをコンパイルします。これは、リッチーが非常に早い段階で作成した方法 last1120c コンパイラーです。

9
vartec

Cは、新しいプラットフォーム用のすべてのアセンブリコードを書き直さなくても、Unixを他のプラットフォームに移植できるように設計されています。

したがって、「Cはポータブルアセンブラー」という一般的なことわざです。これは、Cが抽象レベルで意図的にCPU(1970年頃から)に非常に近いことを反映しており、ほとんどの組み込みソフトウェアが何らかのCで記述されている理由でもあります。

したがって、CはUnixと密接に関係しており、Unixの人々は、以前の作業に基づいて、必要なことを行う最初のCコンパイラを作成しました。

カーニガンとリッチーがCに関する優れた本を書いたことに注意してください。これは、コンピューター言語に関するおそらく最も影響力のある参考文献の1つであろう。

2
user1249

この記事はあなたの質問に答えるべきです:

http://www.faqs.org/docs/artu/c_evolution.html

Cの歴史はB言語に拘束されており、そのためにケントンプソンがインタープリターを開発しました。 RitchieはC開発の非常に最初の段階でそれを使用しました。

2
Macmade