1)简述编译程序与翻译程序、汇编程序的联系与区别。
教材第一节中就有相关的知识点。一个编译程序就是一个语言翻译程序。翻译程序是把一种语言写的程序翻译成另一种语言的等价程序,汇编程序是把程序翻译成机器语言的程序,而像C等高级语言写的程序,将其翻译为汇编语言或机器语言等低级语言,就是编译程序。一个高级语言程序的执行过程离不开编译程序和汇编程序等翻译程序对程序的处理。
2)编译过程包括哪几个主要阶段及每个阶段的主要功能。
1.词法分析:将字符逐个读入源程序,并进行扫描和分解,识别各个单词,并生成单词序列;
2.语法分析:将单词序列分解成各类语法短语;
3.语义分析:审查每个算符是否具有语言规范允许的运算对象;
4.中间代码生产:上述工作后,编译程序将源程序变成一种内部表示形式;
5.代码优化:对中间代码进行变化改造,使之高效;
6.目标代码生成:把中间代码变换成机器上的绝对指令代码或可重定位的指令或汇编指令代码。
3)简述解释程序与编译程序的区别。
解释程序即代码执行时,代码一边解释一边执行,不需要生成目标代码,也可以在机器上运行程序并生成结果。
编译程序则要对高级语言写的程序进行编译,最后生成目标代码才能执行。
4)了解新开源的华为方舟编译器(https://www.openarkcompiler.cn/home),理解它的基本思想与采用的技术路线,谈谈它对安卓软件生态会有什么影响。
方舟编译器是华为专门为软件厂商开发的一款编译器,能够有效解决安卓程序“边解释边执行”的低效率问题。华为方舟编译器采用全程执行机器码高效运行程序,架构进一步得到优化,性能也有明显提升。相较与此前流畅度,通过华为方舟编译器编译后的程序系统,操作流畅度提升24%,系统响应速度提升44%,三方应用操作流畅度提升60%。