一、引入
C语言是国际上广泛使用的一门高级程序设计语言,具有简洁、高效、灵活、可移植性强等优点,本节课主要讲解C语言的发展历程和特点,分析C语言程序的结构,让大家对C语言有了概念性的认识。
二、编程概述
计算机只能识别0和1两个数,也就是高、低电平,因此最初人们编写的程序就是由0和1组成的数串,这种程序能够被机器直接识别。
后来,为了简化程序的编写,人们使用字符代替常用的二进制指令,汇编语言由此而生。汇编语言仍然是机器语言,只是改变了表现形式,汇编程序仍依赖于计算机硬件,其可读性和可移植性都很差,汇编语言也被称为“低级语言”。
由于汇编语言的可读性难以满足人们的要求,因此,人们又创造了BASIC、PASCAL、FORTRAN等高级语言。这些语言封装了编程语言,以人类的日常语言为基础,使用一般人易于接受的文字来表示,从而使程序编写更容易,亦有较高的可读性(此处可有举例)。但这些语言不能直接操控底层的硬件。
C语言也是一种高级语言,但它同时具有低级语言的一些优势,包括一些底层的硬件操作,因此它也被称为“中级语言”。
三、C 语言的诞生与发展
(1)1960年出现了ALGOL 60。
(2)1963年,剑桥大学将ALGOL 60语言发展成为CPL(CombinedProgramming Language)语言。
(3)1967年,剑桥大学的马丁•理查兹(MatinRichards)对CPL语言进行了简化,于是产生了BCPL语言。
(4)1970年,美国贝尔实验室的肯•汤普森(Ken Thompson)将BCPL进行了修改,并将其命名为B语言,同时他用B语言写了第一个UNIX操作系统。
(5)1973年,美国贝尔实验室的丹尼斯•里奇(DennisM.Ritchie)在B语言的基础上设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,即C语言。
(6)1978年,布赖恩•凯尼汉(BrianW.Kernighan)和丹尼斯•里奇(Dennis M.Ritchie)出版了第一版《The C Programming Language》,从而使C语言成为目前世界上流传最广泛的高级程序设计语言。

图一:早期C、UNIX和相关硬件系统——引自《C专家编程》
第一个C语言标准:1978年,Brian W. Kernighan和Dennis M. Ritchie合著了《The C Programming Language》(第1版),通常称之为K&R C或经典C;
C89和C90标准:1983年,美国国家标准协会组成了一个委员会(X3J11),制定了第一个C标准草案(ANSIC83)。1989年,ANSI公布了一个完整的C语言标准——ANSI X3.159-1989,这个版本的语言经常被称作ANSI C或C 89。 在1990年,ANSI C标准(带有一些小改动)被美国国家标准协会采纳为ISO/IEC9899:1990,这个版本有时候称为ISO C或者C90。因此,C89和C90基本上是相同的;
C99:1995年,ISO对C90做了一些修订——1995基准增补1(ISO/IEC 9899/AMD1:1995)。1999年,ISO又对C语言标准进行修订,即ISO/IEC9899:1999。此后,2001年和2004年先后进行了两次技术修正,即2001年的TC1和2004年的TC2。ISO/IEC 9899:1999及其技术修正被称为C99。2000年3月,ANSI 也采纳了 ISO/IEC 9899:1999 标准;
【C语言趣事】大名顶顶的C语言竟然只因一款小游戏 “Space Travel” 而意外出现。
前世
CPL语言是1963年英国剑桥大学推出(Combined Programming Langurage)的高级语言。CPL语言在ALGOL 60 的基础上接近硬件一些,但规模比较大,难以实现。1967年英国剑桥大学的 Matin Richards对CPL语言做了简化形成为BCPL语言,用来写UNIX。但是并没有多长时间,就被它强大的后代B语言(取BCPL的第一个字母)所取代。B语言是贝尔实验室的KenThompson在BCPL的基础上改进的。

Ken Thompson
今生
突然有一天贝尔实验室的研究员Ken Thompson闲来无事,手痒难耐,于是用B语言编写了一款模拟在太阳系航行的电子游戏——Space Travel。但是游戏运行需要机器和操作系统,于是他背着老板,找到了一台没有操作系统的空闲的机器——PDP-7,并着手为PDP-7开发操作系统。同样酷爱Space Travel的Dennis M.Ritchie也为了能早点儿玩上游戏,加入了Thompson的开发项目,合作开发操作系统。而他的主要工作是改造B语言,使其更成熟。1972年,终于在B语言的基础上设计出了C语言(取BCPL的第二个字母)。

Dennis M.Ritchie
C语言的主体完成后,Ken Thompson 和Dennis M.Ritchie就开始着手重写UNIX操作系统。此时,编程的乐趣使他们已经完全忘记了那个"Space Travel",一门心思地投入到了UNIX和C语言的开发中。C语言继续发展,在1982年,很多有识之士和美国国家标准协会为了使这个语言健康地发展下去,决定成立C标准委员会,建立C语言的标准。
【提示】
正确认识游戏,学会利用游戏来学习,来激发兴趣,不要为玩游戏而游戏
从玩游戏到编一个游戏来玩,更重要的是立场与观点的变革
四、C语言特点
(1)C语言简洁、紧凑,使用方便、灵活,具有丰富的运算符和数据结构。
(2)C语言允许直接访问物理地址,进行位操作,可以直接对硬件进行操作。
(3)C语言具有结构化的控制语句。
(4)C语言语法限制不太严格,程序设计自由度大。
(5)C语言编写的程序可移植性好(与汇编语言相比)。
(6)C语言生成目标代码质量高,程序执行效率高。

