第一章
第一题:解释下列术语:
- 编译程序:如果源程序为高级语言,目标程序为计算机上的汇编语言或及其与原,则此翻译程序称之为编译程序。
- 源程序:源语言编写的程序。
- 目标语言:目标语言书写的程序。
- 编译程序的前端、后端:
- 编译程序的遍:是对源程序或其等价的中间语言程序从头到尾扫视并完成规定任务的过程。
第二题:编译程序有哪些主要构成成分?各自的主要功能是什么?
编译程序通常包含8个组成成分:词法分析程序,语法分析程序,语义分析程序,中间代码生成程序,中间代码优化程序,目标代码生成程序,表格管理程序和错误处理程序。
- 词法分析程序:输入源程序,拼单词,检查单词和分析单词,输出单词的机内表达形式。
- 语法分析程序:在词法分析的基础上,将单词组成各类语法短语并分析能否构成正确程序。
- 语义分析程序:对语法分析所形成的各类短语分析其含义,进行语义审查。
- 中间代码生成程序:按照语义规则,将语法分析程序分析出的语法单位转换成一定形式的中间语言代码,如三元式或四元式。
- 中间代码优化程序:为了产生高质量的目标代码,对中间代码进行加工优化处理。
- 表格管理程序:负责建立,填写,查找等一系列表格管理工作。
- 出错处理程序:处理和校正源程序中存在的语法、语义、词法错误。
第三题:什么是解析程序?它与编译程序主要的不同是什么?
- 解析程序是指:将某种语言编写的程序转换成另一种语言编写的程序,如编译程序、汇编程序等。
- 编译程序是把用高级语言编写的源程序转换成与之等价的另一种低级语言编写的目标程序的翻译程序。
- 广义上讲,编译程序的解析程序都属于翻译程序,但它们的翻译方式不同,解析程序是边翻译边执行,不产生目标代码,输出源程序的运行结果。二编译程序只负责把源程序翻译成目标程序,输出与源程序等价的目标程序,而目标程序的执行任务有操作系统来完成,即只翻译不执行。
第四题:对下列错误信息,请指出可能是编译的那个阶段(词法分析、语法分析、语义分析、代码生成)报告的。
- else没有匹配的if:语法分析
- 数组下标越界:语义分析
- 使用的函数没有定义:语法分析
- 在数中出现非数字字符:词法分析