B言語
B言語は再帰に対応し、非数値型に対応し、特定の機種に依存しない言語であり、OSや他の言語などを開発するための言語として設計された 。データ型を持たない言語で、ハードのCPUレジスタに対応したワード型1種類に依存し、どのようなビット長のCPUにも対応できた。文脈によりワードは整数またはアドレスとして扱われた。ASCIIコードが一般的になり、当時ベル研究所にもDEC PDP-11が導入され、文字データ型のサポートが重要になった。B言語のような型がない言語の仕様は欠点とみなされるようになり、トンプソンとリッチーは言語を拡張して内部型とユーザー定義型をサポートし、その言語はC言語となった。
B言語で記述されたプログラムは、コンパイラによって中間コードに変換され、実行にはインタプリタを必要とした。実行時にインタプリタによって逐次処理されるため、実行速度は極めて遅かった。ただしPDP-7版は機械語を出力できるように改良された。
B言語の型のない設計はハネウェルやPDP-7などの多くの古いコンピュータでは意味のあることであったが、PDP-11以降のほぼ全てのコンピュータがサポートしている8ビットのキャラクタデータ型にエレガントにアクセスすることが難しいことが問題になった。リッチーは1971年に言語の変更を開始し、コンパイラがマシン語を出力するように変換すると同時に、最も顕著な拡張としてデータ型を変数に追加した。1971年から1972年にかけてB言語はNew B言語へ進化し、そしてアラン・スナイダー(Alan Snyder)の強い要求によってプリプロセッサが加えられ、1972年から1973年の初期にC言語となった。
1973年の夏の間にPDP-11用のUNIXがC言語で書き直され、一連の努力が成し遂げられた。1972~73年の間にハネウェル635とIBM 360/370に移植する必要があり、マイク・レスク(Mike Lesk)は後にC言語の標準入出力ライブラリとなる「汎用的なI/Oパッケージ」を書いた。
B言語はC言語にほぼ置き換わった。B言語はハネウェルのメインフレームGCOSで1990年代頃まで利用され続けていた。また、小型システムの限定されたハードウェアを利用するためであったり、大規模なライブラリやツールやライセンスの問題、また単純に業務に必要十分であるからなどのような様々な理由により、一部の組み込みシステムでも利用されていた 。非常に大きな影響力のあったAberMUDはB言語で記述されていた。