C言語の発明史

C言語は文字通りコンピュータの世界を揺るがしたと言っても不思議ではありません。

C言語の発明史

C言語の誕生は、システムプログラムを作成する際にアセンブリコードを置き換えることができる、構造化された効率的で高レベルな言語の必要性の直接的な結果でした。全体として、C言語はプログラマーによって、プログラマーのために設計されました。

発明の黒幕はDennis Ritchie

さて、このような汎用性の高いプログラミング言語を開発した先見の明があるのは誰でしょうか?

Dennis Ritchie

そう、デニス・リッチーです。彼はしばしばコンピューティングの最も偉大で最も影響力のある頭脳の一人として言及されています。彼が技術の先駆者としてこの分野の専門家から高く評価されているのも不思議ではありません。

ニューヨークのブロンクスビルで生まれたリッチーは、ニュージャージー州で育ち、後にハーバード大学に通い、1963年に物理学の学位を取得して卒業しました。リッチーの父親は、ベル研究所のスイッチングシステムエンジニアでした。リッチーがキャリアの大半を過ごしたのはそこでした。彼のビジョンは、プログラマーの知的能力を満たすことと、プログラマーが独立して創作し、情熱を追求するための自由を創造することという二重の目的を果たすことができるコンピュータ言語を開発することでした。

1960年代後半、リッチーと彼の仲間のプログラマーであるケン・トンプソンは、当時、非常に有能なミニコンピュータで実行できるオペレーティング・システムの開発に着手しました。この事業の結果が UNIX です。UNIXの最初の登場は汎用性に富んでいましたが、それは主にアセンブリ言語で書かれていたという理由から、不器用なものとして特徴づけられました。そのため、どのようなマシンに搭載されたとしても、メモリと語彙の面で多くの制限がありました。リッチーとトムソンは、1973年までにリッチー自身のC言語でUNIXを見事に再コーディングすることで、この問題の最終的な解決策を見つけました。

C言語誕生のきっかけとなった一連の事件

Ken Thompson

初期のプログラミング言語

初期の頃は、CPL(Combined Programming Language)が主流でした。しかし、CPLは大きすぎて多くのアプリケーションでは使えないという大きな欠点がありました。その後、1967年には、CPLのスケールダウン版としてBCPLまたはBasic CPLが開発されました。BCPLの基本的な機能は新しいBCPLにも引き継がれています。BCPLのスケールダウン版であるB言語を開発したのはKen Thompsonでした。

Multicsプロジェクト

1960年代、リッチーとベル研究所(AT&T)の他の数人の専門家がMulticsと呼ばれるプロジェクトに取り組みました。このプロジェクトのビジョンは、おそらく1000人のユーザーが使用できるような大型コンピュータ用のオペレーティングシステムを構築することでした。残念なことに、1969年、ベル研究所はこのプロジェクトから撤退しました。そのため、会社の従業員、特にデニス・リッチーとケン・トンプソンは、別のプロジェクトを探さなければなりませんでした。

UNIXの開発

やがて、Thompson は新しいファイルシステムの開発に取り組み始めました。彼はDEC PDP-7用の新しいファイルシステムのバージョンをアセンブラで書きました。やがて、新しいファイルシステムに改良が加えられ、拡張が加えられました。これには、Multicsプロジェクトで得た多くの知識が活かされています。短期間で、完全なシステムが作成されました。このシステムは、Brian W. KernighanによってUNIXと呼ばれました。しかし、この新しいシステムはアセンブリコードで書かれていました。

B言語が生まれたきっかけは?

UNIXには、FORTRANやアセンブラ以外にもプログラミング言語Bのインタプリタがありました。プログラミング言語Bは、1969年から70年にかけてケン・トンプソンによって開発されました。

初期の頃は、コンピュータのコードはアセンブリコードで書かれていました。プログラマーは、特定のタスクを実行するために、何ページものコードを書かなければなりませんでした。しかし、B言語のような高度な言語を使うと、数行のコードで同じタスクを実行できるようになりました。B言語の効率性は、UNIXシステムのさらなる発展に活かされた。B言語を使うことで、アセンブリよりも高速にコードを生成できるようになったのです。

C言語の究極の発展

B言語の大きな欠点の1つは、データ型を特定できないことでした。さらにもう一つの欠点は、B言語が「構造体」の使用を提供していなかったことでした。デニス・リッチーが新しい言語を開発するように誘導したのは、B言語のこれらの制約でした。

リッチーがC言語を開発したのは1971年から1973年の間で、B言語の構文の大部分を維持しながら、データ型の追加など様々な追加を行いました。そのアイデアや原理の多くは、以前のB言語だけでなく、B言語の祖先であるBCPLやCPLからも引き継がれています。C言語は、オペレーティングシステムをプログラムするのに必要な高レベルの機能と詳細な機能が見事にミックスされました。

C言語の偉大さ

リッチーによって開発されたC言語の力と柔軟性はすぐに明らかになりました。 最終的に、実際にはアセンブリ言語で書かれていたUNIXオペレーティングシステムは、おそらくすぐに新しいC言語で書き直されたのでしょう。

アセンブリ言語は非常に支配的で、強力で、しなやかな言語であったため、その使用はすぐにベル研究所を超えて広がりました。1970年代後半になると、この言語は当時よく知られていたALGOLやPL/Iなどの言語にほぼ取って代わり始めました。世界中のプログラマーがこの言語を使って、ほとんどすべての種類のプログラムを書き始めました。

この究極の設計により、リッチーは1983年にチューリング賞を、1999年にはトンプソンとともに国家技術勲章を受賞しています。

C言語の最初の本


そして、リッチーと共同研究者のカーニガンは、C言語の参考書「The C Programming Language, 1st edition」を出版し、リリースしました。この本はカーニガンとリッチーの両方によって書かれたと言われていますが、 カーニガンはこの発言を否定し、C言語の開発には何の関与もしておらず、 すべてリッチーの仕事であり、すべての手柄は彼にあると述べています。

ANSI CおよびISO C


長い間、C言語はRitchie氏の著書が標準となっていましたが、様々な組織が少しずつ違いをつけて独自のバージョンを適用し始めました。これは、実際にはシステム開発者にとって深刻な問題となっていました。この重大な問題を解決するために、1983年に米国規格協会(ANSI)はC言語の標準的な定義を確立するための委員会を結成しました。いくつかの例外を除いて、ほとんどすべての最新のCコンパイラは提案された標準に従うことができました。1990年、ANSI CはISOまたは国際標準化機構によって承認されました。正しい用語はもちろんISO Cであるべきですが、今でも誰もがANSI Cと呼んでいます。

そして、UNIXとCは、Linux、C++、Mac操作システム、iOSのような無数の化身を作りました。

C言語 プログラマーのための言語


C言語は今日でも広く使われており、世界で2番目に人気のあるコードであることも不思議ではありません。C言語の開発は、コンピュータ言語の近代的な時代の始まりと考えられています。それまでのコンピュータ言語に深刻な問題を引き起こしていた相反する要因をうまく統合した結果、C言語は効率的で強力な構造化された言語として、むしろ学習しやすい言語として登場したのです。 この言語のもう一つの重要な側面は、それがプログラマーのための言語であったということです。C言語は、実際に効果的なプログラマーによって設計、開発、実装されており、彼らのプログラミングに対する情熱が反映されていました。C言語の機能は、実際にその言語を使った人たちによってテストされ、磨かれ、考えられ、再考されました。その結果、すべてのプログラマーが使うのが好きなコンピュータ言語ができあがりました。

C言語はすぐに、驚くほどの熱意を持った多くのフォロワーを集めました。プログラマーのコミュニティに広く、急速に受け入れられていったのです。デニス・リッチーのおかげで、C言語はプログラマーによって、そしてプログラマーのために作られた言語なのです。

こちらはおススメのC言語の入門書です

コメントを残す