一、翻译程序与编译程序
1、所谓翻译程序是指这样一个程序,它把一种语言(称作源语言)所写的程序(源程序)翻译成与之等价的另一种语言(称为目标语言)的程序(目标程序)。
如果源语言是高级语言,目标语言是诸如汇编语言或机器语言之类的低级语言,那么称这样的翻译程序为编译程序。
2、解释程序是一种翻译程序,它将源程序作为输入并执行之,即边解释边执行。它与编译程序的主要区别是编译过程中不会产生目标程序,而是按照源语言的定义解释执行源程序本身。
3、采用编译方式在计算机上执行用高级语言编写的程序,需要分阶段进行,一般分为2个阶段:编译阶段和运行阶段。
4、如果编译阶段生成的目标程序不是机器语言程序而是汇编语言程序则程序的执行需要分为3个阶段:编译阶段、汇编阶段和运行阶段。
二、编译过程和编译程序的基本结构
编译程序的功能是把高级语言编写的源程序翻译成等价的机器语言或汇编语言表示的目标程序。
1、编译过程
(1)词法分析
对源程序的字符串从左到右进行扫描和分解,根据语言的词法规则,识别出一个个具有独立意义的单词。
(2)语法分析
在词法分析的基础上,根据语言的语法规则识别出各种语法单位(如表达式、说明、语句等)并检查各种语法单位在语法结构上的正确性。
(3)语义分析及中间代码生成
对每种语法单位进行静态的语义审查,然后分析其含义,并用另一种语言形式(比源语言更接近目标语言的一种中间代码或直接用目标语言)来描述这种语义。
(4)代码优化
对当前阶段产生的中间代码进行等价变换或改造,以获得更高效的目标代码。
(5)目标代码生成
将中间代码生成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。
三、编译程序的生成方法
1、对源语言和目标语言的认真分析
2、设计编译算法
3、选择语言编制程序
4、调试编译程序
5、提交相关文档资料