C语言名称怎么来的?有A和B语言吗?没A语言有B语言,正是C的源头

C语言是在B语言的基础上发展起来的 。

C语言名称怎么来的?有A和B语言吗?没A语言有B语言,正是C的源头

文章插图
 
C的根源是ALGOL 60,1960年ALGOL 60是一种面向问题的高级语言,离硬件比较远,1963年的时候推出了CPL语言,CPL在ALGOL 60的基础上更接近硬件一些,但很难实现,1967年,对CPL语言做出了简化,推出了BCPL语言,1970年又对BCPL语言为基础,又做出了进一步的简化,设计出了很简单的的而且接近硬件的BCPL语言简称B语言(BCPL的第1个字母),并且用了B语言编写的第1个UNIX操作系统,在PDP 7上实现,此时的B语言过于简单,功能有限,在1972-1973年间,D.M.Ritchie在B语言的基础上设计出了C语言(BCPL的第2个字母),C语言保持了B语言的优点(精炼,接近硬件)又克服了缺点(过于简单,数据无类型等) 。它就经受住了时间的考验,在许多情况下仍然是最流行的编程语言之一 。
 
C语言名称怎么来的?有A和B语言吗?没A语言有B语言,正是C的源头

文章插图
 
Basic Combined Programming Language(BCPL),1967年由剑桥大学的Matin Richards在同样由剑桥大学开发的CPL语言上改进而来 。BCPL最早被用做牛津大学的OS6操作系统上面的开发工具 。后来通过美国贝尔实验室的改进和推广成为了UNIX上的常用开发语言 。
C语言名称怎么来的?有A和B语言吗?没A语言有B语言,正是C的源头

文章插图
 
BCPL有些类似于Fortran,也是典型的面向过程的高级语言 。BCPL的语法更加靠近机器本身,适合于开发精巧,高要求的应用程序,同时对编译器的要求也不高 。BCPL也是最早使用库函数封装基本输入输出的语言之一,这使得他跨平台的移植性很好 。BCPL的代码用小写字母书写,有别于同时代的BASIC和PASCAL 。BCPL对于字符串的支持很差,内存管理也很糟糕 。
BCPL本身并没有被使用太长时间 。1970年,贝尔实验室的Ken Thompson在BCPL的基础上改进出了B语言,用于书写UNIX 。这个名字取自BCPL中的第一个字母 。B语言使用的时间更短,三年后的1973年同样是贝尔实验室的D.M.RITCHIE将B语言进一步改进,并且取了BCPL中的第二个字母将其命名为C语言 。而C语言和C++则在日后成为了最流行的高级语言 。
 
B语言之父和C语言之父是同事,UNIX的作者 
1964年,美国麻省理工、贝尔实验室、通用电气准备为GE-645大型机开发一套多人多任务操作系统MULTICS 。
C语言名称怎么来的?有A和B语言吗?没A语言有B语言,正是C的源头

文章插图
 
参与研发的一位贝尔实验室研究员肯·汤普森搞了一台废弃的DEC PDP-7计算机,PDP-7字长为18位,其标准主内存为4K字(相当于9千字节),可以升级到64K字(144 KB) 。
C语言名称怎么来的?有A和B语言吗?没A语言有B语言,正是C的源头

文章插图
 
DEC PDP-7
肯·汤普森伙同好友丹尼斯·里奇在上面研发了一个操作系统
C语言名称怎么来的?有A和B语言吗?没A语言有B语言,正是C的源头

文章插图
 
丹尼斯·里奇
 
虽然这个操作系统比较简陋,但公认是UNIX操作系统的雏形 。已经显示出Unix的一些基本特征——简洁、高效、比当时所有的操作系统都更注重交互性、对程序员友好 。具备一个简陋的文件系统,有特殊的文件类型及支持目录和设备,甚至可以支持多任务 。它的核心是用汇编写的(汇编器也是肯·汤普森自己写的),不具备可移植性 。只支持两个用户 。
 
这个系统除了使用汇编语言之外,还是用了一种在BCPL语言基础上由肯·汤普森发明的B语言 。叫B语言,就是把BCPL精简提炼的意思 。
B语言不支持数据类型和结构,接近底层 。后来丹尼斯·里奇在B语言的基础上增加了数据类型和结构的支持,推出了C语言(意思是“BCPL”中排在B之后) 。
肯·汤普森1970年借为贝尔实验室专利部开发一套文字处理系统的机会,搞到了一台PDP-11/20 。他们把UNIX从PDP-7上移植了过来,汇编写的代码没什么可移植性,所以基本上就是在PDP-11上重写了一次,让C语言有了大显身手的用武之地,也是第一次使用高级语言开发操作系统 。
C语言名称怎么来的?有A和B语言吗?没A语言有B语言,正是C的源头

文章插图
 
贝尔实验室成了Unix的第一个商业用户,这是在1971年11月,在与系统配套的手册中,该版本被称做“First Edition” 。
C语言名称怎么来的?有A和B语言吗?没A语言有B语言,正是C的源头

文章插图
 


推荐阅读