1、何谓源程序、目标程序、翻译程序、编译程序和解释程序?它们之间有何种关系?
源程序
用汇编语言或高级语言编写的程序称为源程序
目标程序
用目标语言所表示的程序
目标语言:机器语言或汇编语言
翻译程序
将源程序转换为目标程序的程序称为翻译程序。它是指各种语言的翻译器,包括汇编程序和编译程序,是汇编程序、编译程序以及各种变换程序的总称。
编译程序:把高级语言的源程序翻译成目标语言程序,再结合运行子程序执行出结果。
解释程序:类似于口译,不生成目标代码,把高级语言源程序的代码中一个语句翻译成机器代码并执行,即边翻译,边执行。
2、一个典型的编译系统通常由哪些部分组成?各部分的主要功能是什么?
- 词法分析程序
根据词法规则分析和识别单词 - 语法分析程序
根据语法规则(即语言的文法),分析并识别出各种语法成分(如表达式、语句、函数等),并进行语法正确性检查。 - 语义分析及生成中间代码程序
依据语义规则对识别出的各种语法成分分析其含义,并进行初步翻译,生成中间代码。 - 代码优化程序
对中间代码进行加工变换,以得到高质量的目标代码 - 代码生成程序
把中间代码变换成特定机器上的低级语言代码 - 符号表管理
填表:把源程序中的信息和编译过程中所产生的信息登记在表格中
查表:在随后的编译过程中同时又要不断的查找这些表格中的信息 - 错误处理
诊察错误,并能报告用户错误性质和位置
出错处理能力的优劣是衡量编译程序质量好坏的一个重要指标。