B语言是贝尔实验室开发的一种通用的程式设计语言,它是于1969年前后由美国贝尔实验室的电脑科学家肯·汤普逊(Ken Thompson)在丹尼斯·利奇(Dennis Ritchie)的支持下设计出来。后来,丹尼斯·利奇以B语言为基础开发出C语言——目前世界上最常用的程式语言之一。自从被C语言取代之后,B语言几乎已遭弃置。
基本介绍
- 中文名:B语言
- 外文名:The B Programming Language
- 创始人:Ken Thompson
- 领域:计算机
- 产生:小型计算机
- 创始时间:1969年
- 档案后缀名:.b
- 前身:BCPL语言
什幺是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语言用户手册的例子:
/* 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');
}