编译原理第1章

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章编译概述

2.典型的编译程序可划分为几部分?各部分的主要功能是什么?每部分都是必不可少的吗?

答:编译程序主要由词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、代码优化程序、目标代码生成程序、信息表管理程序、错误检查处理程序组成。

各部分的主要功能如下:

词法分析程序又称扫描器。进行词法分析时,依次读入源程序中的每个字符,依据语言的构词规则,识别出一个个具有独立意义的最小语法单元,即“单词”,并用某个单词符号来表示每个单词的词性是标识符、分界符还是数;

语法分析程序的功能是:对词法分析的结果,根据语言规则,将一个个单词符号组成语言的各种语法类;

语义分析的功能是确定源程序的语义是否正确;

中间代码生成程序的功能是将源程序生成一种更易于产生、易于翻译成目标程序的中间代码;

代码优化程序的功能是将中间代码中重复和冗余部分进行优化,提高目标程序的执行效率;

目标代码生成程序的功能是将中间代码生成特定机器上的机器语言代码;

符号表管理程序的功能是记录源程序中出现的标识符,并收集每个标识符的各种属性信息;

错误处理程序的功能是应对在编译各个阶段中出现的错误做适当的处理,从而使编译能够继续进行。

编译程序的每部分都是必不可少的。

3.解释方式和编译方式的区别是什么?

答:解释方式最终并不生成目标程序,这是编译方式与解释方式的根本区别。解释方式很适合于程序调试,易于查错,在程序执行中可以修改程序,但与编译方式相比,执行效率太低。

4.论述多遍扫描编译程序的优缺点?

答:优点:(1)可以减少内存容量的需求,分遍后,以遍为单位分别调用编译的各个子程序,各遍程序可以相互覆盖;(2)可使各遍的编译程序相互独立,结构清晰;(3)能够进行充分的优化,产生高质量的目标程序;(4)可将编译程序分为“前端”和“后端”,有利于编译程序的移植。

缺点是每遍都要读符号、送符号,增加了许多重复性工作,降低了编译效率。

相关文档
最新文档