1.编译程序

playpausestop

     当前的电子计算机都是以系统的面貌出现的,它由硬件和软件组成。软件的功能与质量在很大程度上左右着整个计算机系统的功能。软件品种很多,对通用数字计算机来说,主要包括程序设计语言、系统软件与应用软件。操作系统、编译系统、诊断程序等等均属系统软件。
     我们知道,程序设计语言是人类用来和计算机系统进行通信,并控制其工作的人工语言。它经历了几代的发展,最早只有机器语言----不须翻译可直接为计算机所接受,然后从汇编语言、结构化程序设计语言、逻辑程序设计语言发展到今天的面向对象程序设计语言,每类语言的产生都反映了当时人们对程序设计方法的认识和理论研究成果。程序设计语言品种繁多,就以高级程序设计语言来说,近20多年来在我们曾广为流行或正在流行的便有数十种,如早期的ALGOL、FORTRAN,BASIC、COBOL语言;始于70年代的结构化程序设计语言:PASCAL、ADA、C;人工智能语言LISP、PROLOG;发展于80年代并将在90年代占主导地位的面向对象语言,如SMALLTALK、C++、面向对象PASCAL等等。
     这些高级程序设计语言的设计思想与方法、具备的功能以及应用范畴不尽相同,但有一个共同特点,即用它们编制程序比直接用机器语言编制可大大提高效率。可是迄今为止计算机主要是一种逻辑电子装置,它只能接受用二进制数表示的指令和数构成的程序。那么,它怎样接受源程序并完成计算呢?譬如,对于一个简单的赋值语句y :=a+b*c,计算机怎样识别它,又怎样将它编制成能反映先乘后加的优先运算关系的一组机器指令,然后根据这组指令完成上述运算,并把结果保存在y单元中呢?这就有待于翻译。
     通常分两种翻译方式:一种为"编译"方式;另一种为"解释"方式。所谓编译方式是首先把源程序翻译成等价的目标程序,然后再执行此目标程序。而解释方式是边翻译边执行。它们之间的差别主要在于:解释程序不产生将被执行的目标程序,而是直接执行源程序本身。
     如果源语言(编写源程序的语言)是PASCAL、FORTRAN、COBOL、C等这类高级语言,而目标语言是某计算机的汇编语言或机器语言,则这种翻译程序称为编译程序。
     如果源语言是某一汇编语言,而目标语言是某计算机的机器语言,则称这种翻译程序为汇编程序。
     如果把编译程序看成一个"黑盒子",它所执行的转换工作可以用图一来说明。

     一个编译程序的重要性体现在它使得多数计算机用户不必考虑与机器有关的繁琐细节,使程序员和程序设计专家独立于机器,这对于当今机器的数量和种类持续不断地增长的年代尤为重要。
     使用过计算机的人都知道,除了编译程序外,还需要一些其它的程序才能生成一个可在计算机上执行的目标程序。让我们分析一下一个程序设计语言程序的典型的处理过程,如图二所示,可以从中进一步了解编译程序的作用。

点击放大

第1页 第2页 第3页 第4页 第5页