Die Programmiersprache B wurde 1969 von Ken Thompson und Dennis Ritchie entwickelt. B ist stark beeinflusst von BCPL und ist Vorgänger der Programmiersprache C.
B ist vor allem aus sprachhistorischen Gründen interessant, da es die Entwicklung von BCPL zu C genauer dokumentiert. B ist für die Übersetzung auf einer DEC PDP-7 mit 8 kb RAM entwickelt worden. Später wurde sie auf PDP-11 Maschinen und Honeywell Mainframes portiert, wo es zum Beispiel für das bekannte AberMUD von Alan Cox bis in die 1990er-Jahre benutzt wurde.
Aufgrund der eingeschränkten Hardwareressourcen auf der Zielmaschine PDP-7 fehlen B einige BCPL-Merkmale, die die Übersetzung aufwändiger machen würden. Beispielsweise sind keine verschachtelten Funktionsdefinitionen möglich. Ebenso wegen der eingeschränkten Ressourcen erzeugte der B-Compiler auf der PDP-7 einen einfachen Zwischencode, der von einem Interpreter zur Laufzeit interpretiert werden muss.[1]
In B gab es wie in BCPL oder Forth nur einen Datentyp, dessen Bedeutung sich erst durch die benutzten Operatoren und Funktionen ergab. B ist also typlos. Es gab bereits viele Spracheigenschaften, die man in C finden kann. Einige Programme sind sogar ohne Probleme noch mit heutigen C-Compilern übersetzbar.
main() {
auto c;
auto d;
d=0;
while(1) {
c=getchar();
d=d+c;
putchar(c);
}
}
Dieses Programm lässt sich auch noch mit heutigen C-Compilern (im K&R- oder traditional-Modus) übersetzen. Es ist jedoch kein ANSI-C.