实际上没有A语言叫法。
B语言
B语言是贝尔实验室的计算机先驱Ken Thompson 和 Dennis Ritchied与1969年设计开发。他们的主要其他功绩还有Unix操作系统和C语言。可以说C语言就是改进化的B语言(B->New B ->C),这在笔者另一个回答“C语言是用C语言开发”中有过说明。
B语言由Ken Thompson设计开发,后由他的老伙计老丹执笔开发,设计最初是为了使用Multics。
B语言设计用来支持递归、无类型、独立于机器的应用,比如操作系统,编程语言等。
B语言主要集成了BLCP的衣钵,但对其做了较大精简
B语言主要的变化
B语言设计时候充分体现了Thompson关于典型应用中应该尽可能减少非空行数的宗旨。类ALGOL语言的一些语法修改了:
用“=”取代了了“:=”做为赋值操作符,相等判断语句用“==“。
Thompson还引入了加赋值语句(做加操作,并赋值)”a =+ b“(注意这个C语言中的“+=”顺序是不一样的)。“++”连增和“--”连减语句。
B语言是无类型语言,或者说只有一个类型:word。加减乘除等大多数的语句都中都被当作是整型计算,其他的操作的都是内存地址,对其进行解引用。其他方面和C语言都是一样的,设置很多内置的函数库和C语言的标准I/O库是一样的(这正好说明C就是B,嘿嘿)。
B语言最早是用在DEC PDP-7和PDP-11等早期的Unix小型机上以及使用 GCOS操作系统的霍尼威尔GE-645上。早期是PDP-7小型机编译为threaded code的,后来Ritchie用TMG语言写了一个编译器把它编译为机器码。
1970年Ken Thompson 和 Dennis Ritchied收购一台PDP-1,threaded code用于端口、一个汇编的dc程序以及用B编译的B语言用来起推动了这太小机,就是这台机器为C语言的诞生立下了汗马功劳。用它的Ritchie 写了早期的yacc程序。
B语言写的Mud游戏,可能大多数人都不知道Mud游戏,但是这个基于文字的现实模拟游戏确实非常有有意思,当年都玩过,也自己改过,可以说这个是现代网络游戏的鼻祖,尤其是Web游戏,不就是在Mud基础上加了一些图片么?
Ken Thompson写的一个B语言实例:
B语言仍然在发挥余热
按理来说B语言在完成C语言后就完成使命了,寿终正寝了才对。以至于,现在只有了解C语言历史的人才知道B语言。但是实际上B语言还在发挥余热呢?
由于B语言支持扩展的类库、工具、没有额外授权成本;足够简单,足够胜任。所以在一些微小型硬件系统上任然有再用。现在还在用的GCOS mainframe。