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');
}