笔记改自于王道训练营资料
其实是因为先有高级语言ALGOL 60,简称 A 语言,后来经过简化,变为 BCPL 语言,简称 B 语言,而 C 语言是在 B 语言的基础之上发展而来的,所以就称为 C 语言。所以世界上第一个 C 语言的编译器是用 B语言编写的。
目前主流的编译器是微软的 masm(Microsoft Visual Studio 使用的),还有就是Linux 使用的 gcc 编译器(Mac 电脑也使用该编译器),学习一堆 C 的版本及标准意义不大,关键是掌握编译器支持的语言特性,接下来的八章我们所讲的 C 语言内容无论是在 Windows,还是 Linux 及 Mac,都可以编译通过。
UNIX
1965 年之前的时候,电脑并不像现在一样普遍,它可不是一般人能碰的起的,除非是军事或者学院的研究机构,而且当时大型主机至多能提供 30 台终端(30 个键盘、显示器),连接一台电脑
为了解决数量不够用的问题
- 1965 年左后由 贝尔实验室 加入了 麻省理工学院 以及 通用电气 合作的计划 —该计划要建立一套 多使用者 (multi - user) 、多任务 (multi - processor) 、多层次 multi- level) 的 MULTICS 操作系统,想让大型主机支持 300 台终端
- 1969 年前后这个项目进度缓慢,资金短缺,贝尔实验室退出了研究
- 1969 年从这个项目中退出的 Ken Thompson 当时在实验室无聊时,为了让一台空闲的电脑上能够运行 “星际旅行(Space Travel)” 游行,在 8 月份左右趁着其妻子探亲的时间,用了 1 个月的时间,使用汇编写出了 Unix 操作系统的原型
- 1970 年,美国贝尔实验室的 Ken Thompson ,以 BCPL 语言为基础,设计出很简单且很接近硬件的 B 语言(取 BCPL 的首字母),并且他用 B 语言 写了第一个 UNIX 操作系统
- 1971 年,同样酷爱 “星际旅行(Space Travel)” 的 Dennis M.Ritchie 为了能早点儿玩上游戏,加入了 Thompson 的开发项目,合作开发 UNIX,他的主要工作是改造 B语言,因为 B 语言 的跨平台性较差
- 1972 年, Dennis M.Ritchie 在 B 语言 的基础上最终设计出了一种新的语言,他取了 CPL 的第二个字母作为这种语言的名字,这就是 C 语言
- 1973 年初, C 语言的主体完成, Thompson 和 Ritchie 迫不及待地开始用它完全重写了现在大名鼎鼎的 Unix 操作系统
== 肯·汤普逊(左)和丹尼斯·里奇(右)==
C 语言
- 在把 UNIX 移植到其他类型的计算机上使用时, C 语言强大的移植性(Portability)在此显现
-
- 机器语言和汇编语言都不具有移植性,为 x86 开发的程序,不可能在Alpha,SPARC 和 ARM 等机器上运行
- 而 C 语言程序则可以使用在任意架构的处理器上,只要那种架构的处理器具有对应
的 C 语言编译器和库,然后将 C 源代码编译、连接成目标二进制文件之后即可运
行