C言語はどこにでも見られるわけではないかもしれませんが、実はあらゆるところにさりげなく存在しています。車を始動させるとき、車のマザーボードは様々なコンポーネントと通信するためにC言語を使用しているでしょう。iOSでもAndroidでも、スマートフォンを使うとき、OSのコア部分はC言語で書かれています。 C言語を無視することはできない.

分かりました。駄洒落ですね。ところで、Cという文字にはどんな由来があるのでしょうか?Cプログラミング言語が登場した時、世界に革命をもたらしました。でも、なぜCという名前になったのでしょうか?
クイックリンク
昔々、ベル研究所で…
優秀な人材と巨額の予算

その答えを得るには、時間を遡り、ニュージャージー州にある、控えめながらも広大な建物を見てみましょう。その建物とはベル研究所です。アレクサンダー・グラハム・ベル(聞き覚えがありますか?)によって設立され、当時は事実上政府支援の独占企業であったAT&Tが所有していたベル研究所は、巨額の予算と、実験やアイデアの試行錯誤の自由を享受していました。
この非侵襲的なアプローチは、トランジスタ(コンピューターがもはや街区ほどの大きさではなくなった理由)、レーザー、太陽電池など、数え上げればきりがありません。C言語もまた、伝説的なベル研究所の産物です。しかし、C言語が登場する前には、B言語が存在していました。
B言語があった
B:より良いBCPL

1969年、ベル研究所の聡明で非常に独立心の強い研究者、ケン・トンプソンは、Multicsと呼ばれる大規模で過激なオペレーティングシステムプロジェクトに取り組んでいました。ベル研究所がMulticsプロジェクトを中止したとき、トンプソンは自由時間ができ、ある非常に具体的な問題を抱えていました。それは、彼女が書いた「Multics」というゲームをプレイしたいというものでした。 宇宙旅行 廊下に置かれていた、古くて埃っぽい DEC PDP-7 コンピューター。

PDP-7は画像は右側です。1960年代の基準から見ても時代遅れで、メモリが非常に少なかった(約8キロバイト)。PDP-7でゲームを動かすために、トンプソンは新しいオペレーティングシステムをゼロから構築した。これがUnixの誕生である。しかし、Unixを言語で記述することは アセンブリコード (1と0を使って機械に話しかける、生々しく原始的な言語)は悪夢でした。トンプソンは、人間の論理に近い高水準言語を必要としていました。
当時、当時主流だった高水準プログラミング言語はBCPL(Basic Combined Programming Language)でした。BCPLはPDP-7の狭いハードウェアには大きすぎたため、トンプソンはBCPLから「Basic」という単語を取り、基本的な機能だけを削ぎ落とした新しい言語を作成しました。彼はこの新しい言語をBと名付けました。この言語は高速でシンプルで、現代プログラミングへの第一歩となりました。

しかし、B言語は最終的に失敗に終わりました。PDP-7ではうまく動作しましたが、ベル研究所がより高度なPDP-11にアップグレードすると、B言語のような型指定のない言語ではもはや十分ではありませんでした。B言語は非効率で、新しく高価なPDP-11の性能をはるかに下回る速度で動作させてしまいました。
Cが新しいBになった
Bは昇進した

ここで、トンプソンの親友であり共同研究者でもあったデニス・リッチーの話に移りましょう。リッチーは、Unixが新しいマシンでも生き残るためには、その言語であるB言語の進化が必要だと気づき、2年間をかけてB言語の修正に取り組みました。
彼の革新は型システムの導入でした。文字用のchar型と整数用のint型を考案しました。これにより、プログラマーはコンピューターに、ボックスが1文字を表すことを指示できるようになり、余分なスペースを無駄にすることがなくなりました。これにより、プログラムはよりマシンフレンドリーになりました。

リッチーとトンプソンはしばらくの間、このプロジェクトを単に「New B」と呼んでいました。しかし、この言語の知名度と実力が増すにつれ、彼らは独自のアイデンティティを持つべきだと気づきました。B言語の後継言語であることから、彼らはアルファベットの次の文字に着目し、Cと名付けました。
そして1973年、リッチーとトンプソンはUnixオペレーティングシステムのコアをC言語で書き直しました。それ以前は、高級言語は遅すぎると誰もが認識していたため、オペレーティングシステムは常にアセンブリ言語で書かれていました。しかしC言語は、その誤りを証明しました。C言語は高速で、エレガントで、そして何よりも移植性に優れていたのです。
…そしてDが来た
または何?

1970年代後半には、C言語は誰もが認める王者でした。しかし、ソフトウェアが複雑になるにつれ、C言語はやがて衰退の兆しを見せ始めました。ベル研究所のもう一人の研究者、ビャーネ・ストロウストルップはC言語の速度を高く評価していましたが、「オブジェクト指向プログラミング」という概念を導入したいと考えていました。簡単に言えば、彼はプログラマーがデータを収集し、「オブジェクト」、例えば名前とパスワードが既知の「ユーザー」オブジェクトにログインできるようにしたいと考えていました。

ストロウストルップ(左のオフィスにいる彼をご覧ください発明に名前を付けた以上、論理的に次に来るのはD言語だったはずだ。しかしベル研究所の人々は言葉遊びが好きだった。そこで、ストロストロップの同僚であるマシェッティはC++を提案した。少なくとも彼らにとっては、それは天才的なひらめきだった。それは、C言語に何かが加わったという印象を与えたのだ。Cは しかし、より良い.
この名前の選択は非常に魅力的だったため、アルファベット順のDの位置は20年近く空いたままでした。C++はビデオゲームからウェブブラウザまであらゆるものの標準となり、世界はただ前進しました。C言語で数値を1ずつ増やす方法がわからない場合は、特別なコマンドを使用します。 ++変数がある場合 x そして彼女は書いた x++それは x + 1.
D言語はすでに存在します。
しかし、それは数十年後に現れた

ベテランのスイッチャーエンジニア、ウォルター・ブライト氏がついにその称号を名乗る決心をしたのは2001年のことでした。ブライト氏は長年C++ツールの開発に携わり、1970年代のレガシーコードとの互換性を維持する必要があったため、C++言語の「広範さ」と「安全性の低さ」に不満を抱いていました。
彼はC言語の持つパワーとC++の体系的な機能に加え、現代的でクリーンで壊れにくい設計を求めました。そこでD言語を開発しました。D言語は、コンピューターでブルースクリーンを引き起こすようなエラーを防ぐ、より優れたメモリ管理機能とセキュリティ機能を提供しました。
しかし、その功績にもかかわらず、D言語は典型的な問題に直面していました。D言語が登場した頃には、世界は既にD言語の時代を超越していました。企業はJavaとC#を使用していましたが、世界は依然としてCとC++に固執していました。数年後、メモリ整合性(D言語と同じ原則)を強く重視したRustという言語が登場し、D言語が決して成し遂げられなかった方法でテクノロジー業界の注目を集め、事実上D言語の存在意義を失わせました。
今日、D言語は高い評価を得ている専門言語として存在しています。NetflixやeBayといった企業では、特定の高性能タスクに既に使用されています。素晴らしい言語ですが、王者になることはありませんでした。
A言語はありましたか?
はい、でも…そうでもないですね
分かりました。CはBから派生したのでCであることがわかりました。では、Bより前にAという言語が存在したのでしょうか?答えはイエスです。ただし、皆さんが想像するような形ではありません。これらの言語より前に正式なAという言語は存在しなかったのです。確かに、CはBより後に生まれたのでCになりました。しかし、BがBになったのは、Aより後に生まれたからではなく、BCPLの頭文字だったからです。

しかし、系譜を正しく辿れば、物語はベル研究所よりもずっと前から始まっています。BやCよりもずっと前に、ALGOLがありました。ALGOLはAlgorithmic Language(アルゴリズム言語)の略で、1958年に誕生しました。これは一人の人物が生み出したものではなく、数学演算を記述するための普遍的な方法を求めた欧米の科学者による委員会によって生み出されたものです。現代表記法の曽祖父、つまりピラミッドの頂点に位置する真の「A」を探すなら、それはALGOLです。
ALGOLのアイデアに基づいてCPL(Combined Programming Language)と呼ばれる言語が作成されましたが、当時のマシンには複雑すぎました。そこで、CPLの「基本」バージョンであるBCPLが開発されました。そして、ここからベル研究所の物語が始まります。
2026年の今、私たちはまだC言語の時代に生きています。PythonやJavaScriptのような新しい洗練された言語でさえ、通常はC言語で書かれたプログラムによって解釈されます。C言語は依然としてその基盤であり続けています。ニュージャージーの研究所で生まれた言語は、巨大な計算機のようなコンピューターで宇宙ゲームをプレイできるようにするために生まれたのです。










