1)简述编译程序与翻译程序、汇编程序的联系与区别。
编译程序:将源程序转化为可执行的目标程序;
翻译程序:将一种高级语言翻译成另一种低级语言;
汇编程序:将汇编语言程序翻译成机器语言程序。
2)编译过程包括哪几个主要阶段及每个阶段的主要功能。
1、词法分析:从左到右读入源程序,保留了各种单词序列;
2、语法分析:将词法分析保留的单词序列分解成各类语法短语,可用语法树来表示;
3、语义分析:检查源程序上是否有语义错误;
4、中间代码生成:将源程序生成一种内部表示形式,容易将它翻译目标代码;
5、代码优化:将生成的中间代码进行变化或改造,使生成的目标代码更为高效,省时间和空间;
6、目标代码生成:将中间代码变化成机器上可执行的指令代码或汇编指令代码。
3)简述解释程序与编译程序的区别。
编译程序是一个源程序的语言处理程序,把一种高级语言翻译成某个机器的汇编语言或二进制代码程序,这个二进制程序可以在机器上运行并生成结果;
解释程序是获取某个程序并立即执行这个程序,并马上得到结果,一个程序结束接着执行下一句。如:pythou
4)了解新开源的华为方舟编译器(https://www.openarkcompiler.cn/home),理解并谈谈它的基本思想与采用的技术路线,以及它对安卓软件生态会有什么影响。
基本思想:方舟编译器是为支持多种编程语言、多种芯片平台的联合编译、运行而设计的统一编程平台,包含编译器、工具链、运行时等关键部件。
技术路线:Java/Kotlin程序字节码的前端输入,方舟编译器的中间表示(IR)转换器将前端输入转换成方舟IR,并输送给后端的优化器,最终生成二进制文件,二进制文件与编译器运行时库文件链接生成可执行文件,在方舟的运行环境中就可执行该文件。
影响:华为方舟编译器的开源对于安卓手机使用时间一长就会卡顿的问题有了解决的途径,告别了以前安卓卡顿的局面,这样安卓手机使用软件有了一个快速发展的途径。