B語言

B語言

B語言是貝爾實驗室開發的一種通用的程序設計語言,它是於1969年前後由美國貝爾實驗室的電腦科學家肯·湯普遜(Ken Thompson)在丹尼斯·利奇(Dennis Ritchie)的支持下設計出來。後來,丹尼斯·利奇以B語言為基礎開發出C語言——目前世界上最常用的程序語言之一。自從被C語言取代之後,B語言幾乎已遭棄置。

含義


B語言是一種無類型語言,所有的數據都和機器字相對應,並且程序員可以直接通過內存地址操作內存。B語言最初在DEC的PDP-7和PDP-11小型機的早期Unix版本和Honeywell機器的GCOS系統上實現。
B語言的無類型特性使得其在PDP-11機器上無法以比較優雅的方式訪問字元類型,因而從1971年開始,Dennis Ritchie開始對B語言進行改造,其中最重要的是引入了數據類型的概念,這些改造最終使B語言演化為了計算機發展歷史上最為重要的編程語言——C語言。
時至今日,除了在一些古老的大型機或是特殊的嵌入式平台上,B語言已經芳蹤難覓了。但B語言在編程語言發展歷史上重要的承前啟後的里程碑地位,卻將永遠為人們銘記。

演變歷史


B語言是從BCPL系統中刪減了湯普遜認為非必備的組件以便能運行在當時的小型計算機上而產生的。B語言還包括了湯普遜的一些個人偏好(主要在一些特定的程序中減少非空格字元的數量)。
和BCPL以及FORTH類似,B語言只有一種數據類型,計算機字。大部分操作將其作為整數對待(例如進行+、-、*、/操作),但其餘操作將其作為一個復引用的內存地址。在許多方面B語言更像是一個早期版本的C語言,它還包括了一些庫函數,其作用類似於C語言中的標準輸入/輸出函數庫。

實際示例


下面是來自Ken Thompson的B語言用戶手冊的例子:
printn(n,b) {
extrn putchar;
auto a;
if(a=n/b)
printn(a, b);
putchar(n%b + '0');
}