为什么Unix不用功能更强大的C++而是用C编写

有人总会说C++不是要比C的作用大很多,功能也更多。那为什么Unix不用功能更强大的C++而是用C编写?关于Unix为什么用C而不是C ++编写的显而易见的答案是C ++是在C之后诞生的。另一个原因是,实际上C语言可能也是为了支持Unix的开发而发明的。

为什么Unix不用功能更强大的C++而是用C编写

C的起源与Unix OS的开发紧密相关。当团队将Unix移植到PDP-11时,它仍在组装中。汤普森(Thompson)和里奇(Ritchie)希望在系统编程中使用高级语言,以使程序员可以清晰地表达概念,而不必与一台计算机的体系结构绑定,但要使效率很高。Unix使用高级语言实现,因此打破了这样一种观念,即必须使用汇编语言来编写系统,并且该系统必须与特定的计算机设计,字长或体系结构相关联。并且首次将包括文件系统,内核,应用程序包,实用程序和用户界面在内的整个编程环境移至完全不同类型的机器上。

汤普森(Thompson)和里奇(Ritchie)早在1969年就已经开发了一种称为“ B”的编程语言,它实质上是BCPL的简化版本。基本上,BCPL去除了不必要的组件,以使实现适合当时的小型计算机的存储能力(BCPL是CPL的简化,其本身是Algol 60的简化)。汤普森和里奇正在考虑使用B语言重写Unix。但是,B无法利用PDP-11的某些功能,尤其是字节寻址能力,导致了“ C”编程语言的发展。C的名称被简单地选择为B之后的下一个字母。

C的开发始于1972年的PDP-11 Unix系统,最早出现在Version 2 Unix中。Unix的很大一部分都用C重写了。来自Unix开发的反馈对C语言的开发很有帮助。C语言“与系统重写之一融合在一起,因此,它非常适合编写系统”。到1973年,由于增加了“结构”类型,C语言已经变得足够强大,以至于现在大多数Unix内核都使用C语言。Unix成为第一个使用非汇编语言实现的OS内核之一。

相关推荐