B语言介绍
B语言是贝尔实验室的计算机先驱Ken Thompson 和 Dennis Ritchied与1969年设计开发。他们的主要其他功绩还有Unix操作系统和C语言。可以说C语言就是改进化的B语言(B->New B ->C)。
B语言由Ken Thompson设计开发,后由他的老伙计老丹执笔开发,设计最初是为了使用Multics。
B语言主要集成了BLCP的衣钵,但对其做了较大精,B语言支持递归、无类型、独立于机器,主要用于方便对这些特性需求的应用,比如操作系统,编程语言等,其实就是为了写Unix和C语言方便。
B语言语言特性
B语言设计时充分体现了Thompson关于"典型应用中应该尽可能减少非空行数"的宗旨
1、赋值语句和等号
类ALGOL语言的一些语法做修改,用"="取代了了":= "做为赋值操作符,相等判断语句"=="。
Thompson还引入了加赋值语句(做加操作,并赋值)"a =+ b"(注意这个C语言中的"+="顺序是不一样的)
这些修改影响了,以后编程语言语法,现在绝大多数的语法都和这语法一样。
2、递增递递减符号
开始添加了"++" 递增和"--" 递减操作符号,可能是为了操作内存地址更方便一点。
3、B语言是无类型语言,或者说只有一个类型:word。加减乘除等大多数的语句都中都被当作是整型计算,其他的操作的都是内存地址,对其进行解引用。
4、其他方面和C语言都是一样的,设置很多内置的函数库和C语言的标准I/O库是一样的(这正好说明C就是B,嘿嘿)。
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游戏——AberMUD,可能大多数人都不知道Mud游戏,但是这个基于文字的现实模拟游戏确实非常有有意思,当年都玩过,也自己改过,可以说这个是现代网络游戏的鼻祖,尤其是Web游戏,不就是在Mud基础上加了一些图片么?
B语言实例
我们来看肯大写的一个B语言的实例:
/* 基于输入的b语言程序输出一个非负的数字 n, 2<=b<=10 ,函数利用了0-10的ASCII字符集,是个连续的值。*/
printn(n, b) {
extrn putchar;
auto a;
if (a = n / b) /* 赋值语句,不是等号判断 */
printn(a, b); /* 递归掉用printn()函数*/
putchar(n % b + '0');
}
B语言仍然在发挥余热
按理来说B语言在完成C语言后就完成使命了,寿终正寝了才对。以至于,现在只有了解C语言历史的人才知道B语言。但是实际上B语言还在发挥余热呢?
由于B语言支持扩展的类库、工具、没有额外授权成本;足够简单,足够胜任。所以在一些微小型硬件系统上任然有再用。
现在还在用的GCOS mainframe。
进一步扩展:单字母开头的语言
简单列下,不在多做扩展介绍,有兴趣回复笔者,以后可以做介绍。
C 语言(包括C++和)
C# 语言
由微软发布,大牛Anders Hejlsberg主持开发。海尔斯伯格主要作品还包括了Turbo Pascal,turbo C ,delphi ,C++ build,J++,F#,.net框架以及和TypeScript。是个传奇的程序员,世界上最顶级的程序员之一。
D 语言
F 语言
G语言
G语言有好几种语言叫这个名字,我们就取两个:
J 语言
K语言
M 语言
P 语言
R 语言
R语言是一个统计计算,数据分析和图形展示的免费开源软件。基于GNU发行的包,由R软件基金会维护,其。随着机器学习和AI兴起、R语言也变得越来越流行了。在2018年最新的TIOBE语言榜R位于13位。
举报/反馈