编译原理 作业一

1)简述编译程序与翻译程序、汇编程序的联系与区别。

翻译程序是指把高级语言源程序翻译成机器语言源程序的软件。

汇编程序是一个翻译程序,它把汇编语言程序翻译成机器语言程序。

编译程序也是一个翻译程序,编译程序是把源语言像C、FORTRAN或Pascal这样的高级语言翻译成目标语言是像汇编语言或机器语言那样的低级语言。

2)编译过程包括哪几个主要阶段及每个阶段的主要功能。

编译过程包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成6个阶段。

每个阶段的主要功能:

词法分析的任务从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(一些场合下也称单词符号或符号)。

语法分析的任务是在词法分析的基础上将单词序列分解成各类语法短语。这种语法也称为语法单位,可表示成语法树。

语义分析是审查源程序有无语义错误,为代码生成阶段收集类型信息。

中间代码是一种结构简单、含义明确的记号系统,这种记号系统可以设计为多种多样的形式。

代码优化的任务是对前一阶段产生的中间代码进行变换或进行改造,目的是使生成的目标代码更为高效,即省时间和省空间。

目标代码生成的任务是把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。

3)简述解释程序与编译程序的区别。

编译程序是整体编译完了再一次性执行。

解释程序是一边编译,一边执行。解释一句后就提交计算机执行一句,并不形成目标程序。

 4)了解新开源的华为方舟编译器(https://www.openarkcompiler.cn/home),理解它的基本思想与采用的技术路线,谈谈它对安卓软件生态会有什么影响。

方舟编译器是华为专门为软件厂商开发的一款编译器,能够有效解决安卓程序“边解释边执行”的低效率问题。华为方舟编译器采用全程执行机器码高效运行程序,架构进一步得到优化,性能也有明显提升。相较与此前流畅度,通过华为方舟编译器后的程序系统,操作流畅度提升24%,系统响应速度提升44%,三方应用操作流畅度提升60%。

原文地址:https://www.cnblogs.com/tao614/p/11451379.html