1.1 C语言发展史
1.1.1 程序语言简述
视频讲解:资源包\Video\01\1.1.1程序语言简述.mp4
在介绍C语言的发展历程之前,先对程序语言进行简要介绍。
1.机器语言
机器语言是低级语言,是机器指令的集合。计算机使用由二进制数组成的一串指令来控制计算机的操作,二进制数由数字0和1构成,如图1.1所示。机器语言的特点是,计算机可以直接识别和解读,不需要进行任何翻译。
2.汇编语言
由于机器语言的二进制代码使用起来太费劲,于是在机器语言基础上发展出了汇编语言,汇编语言是面向机器的程序设计语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令,如图1.2所示。
图1.1 机器语言
图1.2 汇编语言转换成机器指令示意图
3.高级语言
由于汇编语言依赖于硬件体系,并且该语言中的助记符号数量比较多,所以其运用起来仍然不够方便。为了使程序语言能更贴近人类的自然语言,同时又不依赖于计算机硬件,于是产生了高级语言,其语法形式类似于英文,并且因为远离对硬件的直接操作,而易于理解与使用。其中影响较大、使用普遍的高级语言有Fortran、ALGOL、Basic、COBOL、LISP、Pascal、PROLOG、C、C++、VC、VB、Delphi、Java等。C语言程序通过编译转换成机器指令,如图1.3所示。
图1.3 C语言程序转换成机器指令示意图
1.1.2 C语言的发展与应用
视频讲解:资源包\Video\01\1.1.2 C语言的发展与应用.mp4
从程序语言的发展过程可以看到,以前的操作系统等系统软件主要是用汇编语言编写的。但由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都不是很好,为了提高可读性和可移植性,人们开始寻找一种语言,这种语言应该既具有高级语言的特性,又不失低级语言的优点。于是,C语言产生了。
C语言是由UNIX的研制者Dennis Ritchie(丹尼斯·里奇,图1.4居左)和Ken Thompson(肯·汤普逊,图1.4居右)于1970年在BCPL语言(简称B语言)的基础上发展和完善起来的。20世纪70年代初期,AT&T Bell实验室的程序员丹尼斯·里奇第一次把B语言改为C语言。
图1.4 丹尼斯·里奇(左)和肯·汤普逊(右)
最初,C语言运行于AT&T的多用户、多任务的UNIX操作系统上。后来,丹尼斯·里奇用C语言改写了UNIX C的编译程序,UNIX操作系统的开发者肯·汤普逊又用C语言成功地改写了UNIX,从此开创了编程史上的新篇章。UNIX成为第一个不用汇编语言编写的主流操作系统。
C语言是一种面向过程的语言,同时具有高级语言和汇编语言的优点。C语言被广泛应用于不同的操作系统,如UNIX、MS-DOS、Microsoft Windows及Linux等,如图1.5所示。
图1.5 C语言在操作系统方面的应用
常用的编程语言如Java、C#、MySQL、PHP等也主要是用C语言开发的。美国“阿波罗-11”号航天飞船登陆月球的软件系统、波音飞机的飞行系统、世界上第一个3D PS游戏雷神之锤(Quake)等也主要由C语言实现的,如图1.6所示。当然,C语言的强项是底层编程,例如,编译器、驱动系统、操作系统内核、JVM、各种嵌入式软件、各类插件等系统软件也都由C语言开发。
图1.6 C语言的重要应用