1.1 计算机语言及程序的发展
本节首先介绍程序设计语言的发展历史,了解C语言出现的历史背景和C语言的特点以及为什么学习C语言。
1.1.1 计算机语言的历史
计算机系统包括硬件与软件两部分。硬件是计算机系统的躯干,软件是维护计算机硬件系统进行多用途计算的各种程序的总和。计算机语言是软件开发的一套语法规则,这套语法规则的具体实现又是通过称之为编译器的软件来完成的。因此计算机语言的发展史与硬件、软件的历史是一个交叉进化的过程。计算机程序设计语言的发展经历了以下几个阶段。
(1)机器语言
机器语言即是机器指令的集合。每种计算机都有自己的指令集合,计算机能直接执行用机器语言所编的程序。机器码是计算机能理解和执行的唯一语言,因其指令是用多位二进制数表示的。用机器语言编程必然很烦琐,非常消耗精力和时间,难记忆,易弄错,并且难以检查程序和调试程序,工作效率低。例如,字母A表示为1010、数字9表示为1001、加法指令码有三种形式,同时又要考虑进位,符号还要考虑溢出等情况。由于机器语言的这些特点,使得软件开发难度大、周期长、程序员记忆困难,因此很难被推广。
(2)汇编语言
为了克服机器语言的缺点,人们引入了一些助记符,用符号来表示指令。这些符号很容易转化为机器语言,直接处理所有硬件,这就是汇编语言。比起机器语言来,它好记了,读起来容易了,检查、修改也方便了。但是这样一来,用汇编语言编写的程序,计算机却不能直接识别和接受,它必须要由一个起翻译作用的程序将其翻译成机器语言程序,这样计算机才能执行。这个起翻译作用的程序,通常被称为“汇编程序”,这个翻译过程,称之为“汇编”。
(3)高级语言
所谓计算机高级语言,就是接近数学问题描述的语言,用接近人类自然语言的方式编程的语言。人们用它来编写计算机程序,比起使用机器语言和汇编语言,显然要方便得多。由高级语言编写的程序称为“源程序”。在计算机内部,源程序必须翻译为机器能够接受的二进制代码所表示的“目标程序”(机器语言)。其中,具有这种翻译功能的程序称为“编译程序”。每一种高级语言都有与其相应的编译程序。在计算机内运行编译程序,才能运行相应的高级语言所编写的源程序。
本书学习的C语言是目前国内外广泛流行的高级程序设计语言,C语言是在20世纪70年代初问世的,是面向过程的较好的结构化程序设计语言。它不仅可以用来编写系统软件,也可以用来编写应用软件,同时也是面向对象程序设计技术的主要工具。目前最流行的C语言有以下几种:
◆ Microsoft C或称MSC
◆ Borland Turbo C或称Turbo C
◆ AT&TC
这些C语言版本不仅实现了ANSI C标准,而且在此基础上各自做了一些扩充,使之更加方便、完美。本书将学习与研究Turbo C系统下的C语言程序设计,所有的例题都在Turbo C 2.0系统下调试通过。
1.1.2 C语言的特点
C语言是很多年来较流行的高级程序设计语言,许多大型软件就是用C语言编写的。C语言之所以能够存在且持续性发展,是因其较之其他程序设计语言有其自身的特点。这些特点归纳起来有下面几个。
◆ C是中级语言:它把高级语言的基本结构和语句与低级语言的实用性很好地结合在一起。C语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。这样的程序移植性比较好,即C语言程序基本上不做修改就能用于各种型号的计算机和各种操作系统上。
◆ C是结构化语言:结构化语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便地调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。程序由主函数开始,函数间可实现相互调用。
◆ C语言功能齐全:C语言具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外C语言也具有强大的图形功能,支持多种显示器和驱动器,而且计算功能、逻辑判断功能也比较强大,可以实现决策目的。
◆ 语言简洁,结构紧凑,程序书写方便,实用灵活:C语言仅有32个具有特定意义的关键字(参见表1.1),宽松的语法检查,比较符合人们的书写习惯。C语言较其他高级程序设计语言来说,程序书写自由,程序简练,效率高,功能强。
◆ 用小写字母书写程序:C语言除宏定义里面所定义的宏名字采用大写字母外,其他一般用小写字母书写。
说明
C语言把大、小写字母视为不同的字符。
◆ 使用方便,具有完好的集成开发环境:本书所介绍的Turbo C是一个集程序编辑、编译、链接、运行和调试为一体的C语言程序开发软件,可对程序进行全屏幕编辑。可利用窗口功能进行编译、链接、调试、运行和环境设置等工作。
表1.1 C语言的关键字