1阐述编译程序各个组成部分主要完成的工作

1阐述编译程序各个组成部分主要完成的工作

ID:40708124

大小:20.50 KB

页数:3页

时间:2019-08-06

1阐述编译程序各个组成部分主要完成的工作_第1页
1阐述编译程序各个组成部分主要完成的工作_第2页
1阐述编译程序各个组成部分主要完成的工作_第3页
资源描述:

《1阐述编译程序各个组成部分主要完成的工作》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、1阐述编译程序各个组成部分主要完成的工作。词法分析的任务:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词。语法分析:在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类语法单位。语义分析与中间代码产生:对语法分析所识别出的各类语法范畴,分析其含义,并进行初步翻译。优化:在于对前段产生的中间代码进行加工变换,以期在最后阶段能产生出更为高效的目标代码。目标代码生成:把中间代码变换成特定机器上的低级语言代码。2什么是编译器的前端和后端,这样划分有何意义?编译器粗略分为词法分析

2、,语法分析,类型检查,中间代码生成,代码优化,目标代码生成,目标代码优化。把中间代码生成及之前阶段划分问编译器的前端,那么后端与前端是独立的。后端只需要一种中间代码表示,可以是三地址代码或四元式等,而这些都与前端生成的方式无关。也就是不论你前端是用fortran还是c/c++,只要生成了中间代码表示就可以了,后端是不管你是用哪种语言生成的。1语法分析的主要任务是什么?常分为哪二类方法?答:任务是在词法分析的基础上将单词序列组合成各类语法短语常分为:自顶而下,自底而上二类方法。2编译程序大致有哪几种开

3、发技术?答:自编译交叉编译自展移植3编译程序的实现应考虑的问题有那些?答:编译程序的实现应考虑:开发周期、目标程序的效率、可移植性、可调试性、可维护性、可扩充性等。编译过程中可进行的优化如何分类?答:依据优化所涉及的程序范围,可以分为:局部优化、循环优化和全局优化。何谓代码优化?进行优化所需要的基础是什么?答:对代码进行等价变换,使得变换后的代码运行结果与变换前代码运行结果相同,而运行速度加快或占用存储空间减少,或两者都有。优化所需要的基础是在中间代码生成之后或目标代码生成之后。8何谓翻译程序、编译

4、程序和解释程序?答:翻译程序是指将用某种语言编写的程序转换成另一种语言形式的程序的程序,如编译程序和汇编程序等。编译程序是把用高级语言编写的源程序转换(加工)成与之等价的另一种用低级语言编写的目标程序的翻译程序。解释程序是解释、执行高级语言源程序的程序。9寄存器分配的原则是什么?答:寄存器分配的原则是:(1)当生成某变量的目标代码时,尽量让变量的值或计算结果保留寄存器中,直到寄存器不够分配时为止。(2)当到基本块出口时,将变量的值存放在内存中,因为一个基本块可能有多个后继结点或多个前驱结点,同一个变

5、量名在不同前驱结点的基本块内出口前存放的寄存器可能不从基本块外入口的变量值都在内存中。(3)对于在一个基本块内后边不再被引用的变量所占用的寄存器应尽早释放,以提高寄存器的利用效率。10什么是语法制导翻译?中间代码通常有哪几种主要形式?答:由一个源语言、一个目标语言和一组翻译规则组成,遮住规则可将任何源语言符号串翻译成对应的目标语言。主要形式三,四元式、逆波兰式11为什么在代码生成时要考虑充分利用寄存器?答:因为当变量值存在寄存器时,引用的变量值可直接从寄存器中取,减少对内存的存取次数,这样便可提高运

6、行速度。因此如何充分利用寄存器是提高目标代码运行效率的重要途径。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。