ヴァルシェドCODE総務部長OS開発に必要な軽量さとシンプルさを求めた結果、B言語が誕生したからです。
はじめに
プログラミング言語「B」は、現代のソフトウェア開発に多大な影響を与えたC言語の直接の祖先として知られています。しかし、B言語そのものがなぜ生まれたのか。
B言語誕生の背景:BCPLからの進化
B言語は1969年、AT&Tベル研究所のケン・トンプソン(Ken Thompson)によって開発されました。そのルーツは、マーティン・リチャーズが1966年に開発した「BCPL(Basic Combined Programming Language)」にあります。BCPLは、コンパイラの記述やシステムプログラミングに適した言語として設計されましたが、当時のコンピュータ資源(特にメモリ)は非常に限られており、BCPLはやや重すぎたのです。
トンプソンは、当時開発していたUNIXオペレーティングシステムを動かすために、より軽量でシンプルな言語を必要としていました。こうして、BCPLを簡略化し、PDP-7という小型コンピュータ上で動作するように最適化されたB言語が誕生したのです。



BCPLはOS開発にも使われましたが、当時の小型コンピュータには重すぎました。
なぜ「B」なのか?名前の由来と意味
「B」という名前の由来には諸説ありますが、有力なのは「BCPL」の頭文字「B」に由来するという説です。また、トンプソンが好んでいた「Bon」という別の言語にちなんだという説もあります。いずれにせよ、BはBCPLの“縮小版”としての性格を持ち、名前にもその意図が込められていたと考えられます。
B言語の特徴と設計思想
B言語は、その誕生当初から「限られた資源の中で最大限の柔軟性を発揮する」ことを目的として設計されていました。最大の特徴は無型(typeless)言語である点です。すべてのデータを「ワード(word)」として扱い、型の概念を持たないことで、シンプルかつ柔軟な処理を可能にしました。
さらに、構文はBCPLよりも一層簡素化されており、コンパイラの実装が容易になっています。これは小型コンピュータ上で効率的に動作させるための工夫であり、開発者にとっても扱いやすい設計でした。
加えて、B言語は自己ホスティングを実現していました。つまり、B言語で書かれたコンパイラをB言語自身でコンパイルできるという自己完結性を備えていたのです。これは言語としての成熟度を示す重要な要素であり、後のC言語へとつながる基盤となりました。
これらの特徴はすべて、当時の限られたメモリや処理能力を前提に「必要は発明の母」を体現したものです。B言語は、シンプルさと効率性を追求することで、後のプログラミング言語の進化に大きな影響を与える存在となったのです。



自己ホスティングをわかりやすくいうと、外部の言語に頼らず、B言語だけで動かせるようになったってことです。
UNIXとの共進化:B言語の実用的な役割
B言語は単なる実験的な言語ではなく、実際にUNIXの初期バージョンの開発に使われました。特に、PDP-7上で動作する最初期のUNIXカーネルはB言語で書かれており、BはUNIXの誕生に不可欠な存在でした。
しかし、B言語には限界もありました。特に、型が存在しないことによる安全性や表現力の制限、そしてハードウェアの進化に伴うニーズの変化が、次のステップを促すことになります。
C言語への橋渡し:Bの限界と進化
B言語の後継として登場したのが、デニス・リッチー(Dennis Ritchie)によって開発されたC言語です。CはBの構文や設計思想を受け継ぎつつ、型システムを導入し、より高い表現力と安全性を実現しました。
C言語はその後、UNIXの主要な実装言語となり、現代の多くのプログラミング言語(C++、Java、Go、Rustなど)に影響を与えることになります。
まとめ:B言語が残したもの
B言語は、短命でありながらも、コンピュータ科学の歴史において極めて重要な役割を果たしました。その存在意義は、単にC言語の前身というだけでなく、制約の中で創造性を発揮するというエンジニアリングの本質を体現していた点にあります。
B言語の誕生と進化の物語は、技術的制約がいかにして新たな発明を促すか、そして小さな一歩が後の巨大な飛躍につながるかを教えてくれます。現代の開発者にとっても、B言語の精神は多くの示唆を与えてくれるはずです。



まとめると、B言語は時代の変化に対応できなかったためにC言語が生まれ、その後C言語が大人気となり、B言語は役割を終えました。
つまり、新しい時代に対応することこそが生き残る道だという教訓を残したのです。


コメント