9.4 了解编译原理
1)简述编译程序与翻译程序、汇编程序的联系与区别。
编译程序是从一种语言到另一种语言的等价转换程序,但是必须从高级翻译到低级,比如目标语言是汇编语言或机器语言的程序就是编译程序。
翻译程序同样是从一种语言翻译到另一种语言的程序,但他们翻译的条件是两种语言必须是等价。
汇编程序是把汇编语言翻译成机器语言的程序。
他们之间的联系便是,区别便是
2)编译过程包括哪几个主要阶段及每个阶段的主要功能。
编译过程包括了词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成6个阶段。
他们的主要功能如下。
词法分析:从左到右地读入源程序,并对构成源程序的字符流进行扫描,从而识别出一个个单词。
语法分析:在词法分析的基础上将单词序列分解成各类语法短语。
语义分析:审查源程序有误语义错误。
中间代码生成:进行上述工作后将源程序变成一种内部表达形式。
代码优化:对上一阶段中间代码进行变化或改造,使其变得更为高效。
目标代码生成:将优化的中间代码转换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。
3)简述解释程序与编译程序的区别。
解释程序是一边解释一边执行,编译程序是全都解释完了再执行。
4)了解新开源的华为方舟编译器(https://www.openarkcompiler.cn/home),理解并谈谈它的基本思想与采用的技术路线,以及它对安卓软件生态会有什么影响。
华为方舟编译器采取了静态编译的方式,是首个取代了安卓虚拟机模式的静态编译器。因为他会加快安卓软件的运行速度,这将冲击到原有的安卓软件并且很大程度影响安卓软件未来发展