b語言是貝爾實驗室開發的一種通用的程序設計語言,它是於1969年前後由美國貝爾實驗室的電腦科學家肯·湯普森(ken thompson)在丹尼斯·利奇(dennis ritchie)的支持下設計出來。後來,丹尼斯·利奇以b語言為基礎開發出c語言——目前世界上最常用的程序語言之一。自從被c語言取代之後,b語言幾乎已遭棄置。
歷史
b語言是從bcpl係統中刪減了湯姆森認為非必備的組件以便能運行在當時的小型計算機上而産生的。b語言還包括了湯姆森的一些個人偏好(主要在一些特定的程序中減少非空格字符的數量)。
和bcpl以及forth類似,b語言衹有一種數據類型,計算機字。大部分操作將其作為整數對待(例如進行+、-、*、/操作),但其餘操作將其作為一個復引用的內存地址。在許多方面b語言更像是一個早期版本的c語言,它還包括了一些庫函數,其作用類似於c語言中的標準輸入/輸出函數庫。
示例
下面是來自ken thompson的b語言用戶手册的例子:
/* the following function will print a non-negative number, n, to
the base b, where 2<=b<=10,this routine uses the fact that
in the anscii character set, the digits 0 to 9 have sequential
code values.*/
printn(n,b) {
extrn putchar;
auto a;
if(a=n/b) /* assignment, not test for equality */
printn(a, b); /* recursive */
putchar(n%b + '0');
}
下面是來自Ken Thompson的b語言用戶手册的例子:
/* The following function will print a non-negative number, n, to
the base b, where 2<=b<=10, This routine uses the fact that
in the ANSCII character set, the digits 0 to 9 have sequential
code values. */
printn(n,b) {
extrn putchar;
auto a;
if(a=n/b) /* assignment, not test for equality */
printn(a, b); /* recursive */
putchar(n%b + '0');
}