CPL语言在ALGOL60的基础上接近硬件一些,但规模比较大,难以实现 1967年英国剑桥大学的 Matin Richards(理查兹)对CPL语言做了简化,推出了 BCPL (Base CombinedProgramming Langurage)语言 1970年美国贝尔实验室的 Ken Thompson(肯·汤普逊) 以 BCPL语言为基础,又作了进一步的简化,设计出了很简单的而且很接近硬件的 B 语言(取BCPL的第一个字母 但B语言过于简单,功能有限 1972年至1973年间,贝尔实验室的 Dennis.Ritchie(丹尼斯·里奇) 在 B语言的基础上设计出了C语言(取BCPL的第二个字母)。 C语言即保持 BCPL 语言和B语言的优点(精练、接近硬件),又克服了他们的缺点(过于简单,数据无类型等) 如今,c语言的市场占有率依旧非常的高。
1.3.1 BCPL语言之父 Martin Richards Martin Richards's BCPL Reference Manual, 1967 https://web.archive.org 21日-),生于英国,计算机科学家,为BCPL编程语言的发明者,发展了TRIPOS操作系统。 1966年,马丁·理察德在剑桥大学,以CPL编程语言为基础,发明了BCPL编程语言。 2.1.1 BCPL语言示例 BCPL https://zh.wikipedia.org/wiki/BCPL GET "libhdr" LET start() = VALOF { LET a, b, 从BCPL到B的过渡中,决定使用单个字符 = 代替赋值 := Other fiddles in the transition from BCPL to B were introduced as a matter
小林:C源自 Ken Thompson 的实验性语言 B, 而 B 由 Martin Richards 的 BCPL(Basic Combined Programming Language)得到灵感, 而BCPL是CPL (CombinedProgramming Language 或也许是 Cambridge Programming Language) 的简化版。 有一段时间, 人们猜测 C 的后继者会命名为 P (BCPL 的第三个字母) 而不是D, 当然, 如今最显见的后裔语言是 C++。 读者:“char” 如何发音?
1967年,剑桥大学对CPL语言进行了简化,于是产生了BCPL语言。其中,「B」代表「 Basic」。 可以说,BCPL 是一种「引导」语言,因为它的编译器具有自编译能力。 实际上,BCPL 编译器的一小部分是用汇编或机器代码编写的,而编译器的其余部分是用 BCPL 的相应子集编写的。 用 BCPL 编写的编译器部分将输入汇编代码编写的部分,生成的编译器程序可用于编译用 BCPL 编写的任何程序。 汤普逊将BCPL的拷贝进行了进一步压缩,使其能够适应 PDP-7上可用的4k 内存。在这个过程中,他借用了他在加州大学伯克利分校读书时学过的一门语言。 汤普森最终证明,在 PDP-7上使用的语言,是「具有大量 SMALGOL 语法的 BCPL 语义」 ,意思是它看起来像 SMALGOL,但工作起来也像 BCPL。
在讲 C 语言之前,我们还不得不先说一下 BCPL 和 B 语言。 BCPL 与 B 语言 Ken Thompson 和 Dennis Ritchie 最初用汇编语言来开发 Unix,因为在那个时候,所有的操作系统都是用汇编语言来开发的。 他们最初的选择是 BCPL。BCPL 最早是由 Martin Richards 发明用来开发编译器的语言。 但是 Ken Thompson 和 Dennis Ritchie很快发现,如果他们想在小型计算机 DEC PDP-7 上使用 BCPL,就需要对这个语言本身进行一些修改。
Basic Combined Programming Language(BCPL)B语言 源自BCPL(Basic Combined Programming Language)1967 年由剑桥大学的 Matin Richards 制作编辑在同样由剑桥大学开发的 CPL语言 上改进而来BCPL 最早被用做牛津大学的 OS6操作系统 上面的开发工具编辑后来通过美国贝尔实验室的改进和推广成为了 UNIX 上的常用开发语言最早 BCPL 语言的样子就有个类似于l(ine)f(eed)的符号这是关于换行符表示法 最早的记录当时的换行符长什么样呢? BCPL的换行符当时的换行符长成这样! \*n编辑上述程序的目是输出 hello,world然后再来个回车所以hello world并不是c语言的发明而是从c语言的爷爷bcpl那时候就有了并且从bcpl时代就已经作为迷因(meme)开始传播
2.C语言的发展历程 C语言之所以命名为C,是因为C语言源自 Ken Thompson发明的B语言,而B语言则源自BCPL语言。 1967年,剑桥大学的 Martin Richards对CPL语言进行了简化,于是产生了 BCPL( Basic Combined Programming Language)语言。 Ritchie在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。 1973年初,C语言的主体完成。
计数表示偏移量 很多人学习编程都是从C语言开始的,那么,C语言就是一个典型的0-base语言(以0作为计数的开始),其实,这一约定早在BCPL时代就是这样的了。 在C语言还不叫C语言,还叫BCPL的时候,他的作者马丁·理察德就设计了数组从0开始的索引方式。 当我们在BCPL(C语言)中定义数组int arr[8]的时候,编辑器会在内存中开辟一块空间(这个空间中可能包含多个内存单元)供该数组使用。 BCPL最初是用IBM 7094机器编译的;它在编译时会优化这些数组索引提供的指针反参考运算(indirection),即可以通过指针取出地址中存储的值,这个特性也一直延续到今天。 那么,BCPL的作者采用了0作为数组第一个元素的下标,因为他认为,数组的下标应该和指针的偏移量是相对应的。这样在使用第一个内存单元的时候,直接使用arr[0]或者*(p+0)就可以了。
1967 年,剑桥大学的Matin Richards 对CPL 语言进行了简化,产生了BCPL 语言。 1970 年,美国贝尔实验室(BellLabs)的Ken Thompson 将BCPL 进行了修改,并取名叫做B 语言,意思是提取CPL 的精华(BoilingCPL down to its basic 1973 年,AT&T贝尔实验室的Dennis Ritchie(D.M.RITCHIE) 在BCPL 和B 语言的基础上设计出了一种新的语言,取BCPL 中的第二个字母为名,这就是大名鼎鼎的C 语言。
1970年,AT&T的Bell实验室的 Ken Thompson,以BCPL语言为基础,设计出简单且接近硬件的B语言(取BCPL的首字母),并且他用B语言写了第一个Unix操作系统。 语言的发展也是相互促进和交融吸收的,C++是直接从C语言发展过来的,而C语言是从B语言发展过来的,B语言则是从BCPL发展而来,BCPL(Basic CPL)则从CPL发展而来,CPL则从ALGOL60
1970年,美国贝尔实验室Ken Thompson,以BCPL语言为基础,设计出很简单很接近硬件的B语言(取BCPL的首字母),并且他用B语言写了第一个UNIX操作系统。 1972年,美国贝尔实验室的Dennis Ritchie在B语言的基础上最终设计出了一种新的语言,他取得了BCPL的第二个字母作为这种语言的名字,这就是C语言。 1973年初,C语言的主体完成。
概述 C语言是国际上广泛流行的计算机高级语言,其祖先是BCPL语言(Basic Combined Programming Language)。 1970年,美国AT&T贝尔实验室的Ken Thompson以BCPL语言为基础,设计出了很多简单且很接近硬件的B语言(取BCPL的第一个字母),但B语言过于简单,功能有限;1972~1973年间,美国贝尔实验室的 D.M.Ritchie在B语言的基础上设计出了C语言,C语言既保持了BCPL和B语言的优点(精炼,接近硬件),又克服了它们的缺点(过于简单,无数据类型等),C语言的新特点主要表现在具有多种数据类型(如字符
1.早期 C 1969:基于 BCPL 创建 B,以作为 Unix 的系统程序语言替代 PDP-7 汇编器。增加运算符 ++ 、 -- 、复合赋值,保持为类 BCPL 的无类型语言。
这就是 Richards 从 CPL 中开发 BCPL — Basic CPL 的初衷,在某种程度上,这可以算得上是一种新语言——这也就意味着承认旧 CPL 惨遭失败。 1969 年,Thompson 以 BCPL 语言为基础,设计出很简单且很接近硬件的 B 语言(取 BCPL 的首字母),并且用 B 语言写了初版 UNIX 操作系统(叫 UNICS),两年后,同样酷爱 1972 年,Richards 在 B 语言的基础上最终设计出了一种新的语言,他取了 BCPL 的第二个字母作为这种语言的名字,这就是 C 语言。 C 语言终于诞生了!
语言的发展是一个逐步递进的过程,C++ 是直接从 C 语言发展过来的,而 C 语言是从 B 语言发展过来的,B 语言是 BCPL 的一个解释性后代,BCPL 是 Basic CPL。 语言继承过来,但是我们的Bjarne博士更具有先见之明,他为了避免受到C语言的局限性,参考了很多的语言,例如:从Simula继承了类的概念,从Algol68继承了运算符重载、引用以及在任何地方声明变量的能力,从BCPL
那当前软件界的语言层出不穷,开发环境也千奇百怪,目前就笔者所知,就有下面的编程语言: Asm BCPL Bash C (clang) C (gcc) C# C++ (clang++) C++ (g++)
例如,C 语言用 BCPL 命名,使 BCPL 用户(极少)变成了 C 的用户。但是,BCPL 是由 Martin Richards 编写,并不是 C 语言。 归根结底,还是用户的流失削弱了语言。
1967年BCPL(Basic Combined Programming Language)由剑桥大学的Matin Richards在同样由剑桥大学开发的CPL语言上改进而来。 BCPL最早被用做牛津大学的OS6操作系统上面的开发工具。 这个名字取自BCPL中的第一个字母。但B语言使用的时间更短。 1972年C语言:1972年同样是贝尔实验室的丹尼斯·里奇 (Dennis Ritchie) 将B语言进一步改进,并且取了BCPL中的第二个字母将其命名为C语言。
1970 年,美国贝尔实验室的 Ken Thompson,以 BCPL 语言为基础,设计出很简单且很接近硬件的 B 语言(取BCPL的首字母),并且他用 B 语言 写了第一个 UNIX 操作系统 1971 1972 年,Dennis M.Ritchie 在 B 语言 的基础上最终设计出了一种新的语言,他取了 BCPL 的第二个字母作为这种语言的名字,这就是 C 语言 1973 年初,C 语言的主体完成,Thompson
微软解释,当时也可以选择 FORTRAN、LISP、COBOL、RPG、CPL/BCPL 和 C 等高级语言,然而这类语言的编译器比较昂贵,代码生成效率也不高,还受空间和性能限制,不适合家用或个人计算机