B (Programmiersprache)
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 | |
---|---|
Paradigmen: | imperativ, strukturiert |
Erscheinungsjahr: | 1969 |
Designer: | Ken Thomas |
Entwickler: | Ken Thompson, Dennis Ritchie |
Typisierung: | typenlos (alles ist ein Datenwort) |
Beeinflusst von: | BCPL, PL/I |
Beeinflusste: | C |
B ist vor allem aus sprachhistorischen Gründen interessant, da es die Entwicklung von BCPL zu C genauer dokumentiert. Es wurde für die Übersetzung auf einer DEC PDP-7 mit 8 kB RAM entwickelt. Später wurde es auf PDP-11-Maschinen und Honeywell-Großrechner portiert, wo es zum Beispiel für das bekannte AberMUD von Alan Cox bis in die 1990er-Jahre benutzt wurde.
Aufgrund der eingeschränkten Hardware-Ressourcen auf der Zielmaschine PDP-7 fehlen B einige BCPL-Merkmale, die die Übersetzung aufwendiger 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 noch mit heutigen C-Compilern übersetzbar.
Bei B wurde der Zuweisungsoperator wieder zu =
wie in Heinz Rutishausers ursprünglicher Sprache Superplan, welche Algol 58 beeinflusst hatte, wobei Algol 58 mit :=
einen Doppelpunkt hinzufügte.
Code-Beispiel
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.
Einzelnachweise
- D. Ritchie, The Development of the C Language in History of Programming Languages, ACM Press and Addison-Wesley, 1996, ISBN 0-201-89502-1
Weblinks
- Die originale Sprachspezifikation (englisch)
- bell-labs.com B-Tutorial (englisch)