1)简述编译程序与翻译程序、汇编程序的联系与区别。
①编译的过程就是将源代码文件以字符流的形式进行处理,进行词法和语法的分析,然后通过汇编器将源代码指令转变成汇编指令,然后交由机器识别。汇编过程实际上指把汇编语言代码翻译成目标机器指令的过程。
②编译程序:由编译器将源代码转变成汇编代码
③汇编程序:由汇编器将汇编代码转变成目标代码
④翻译程序:被翻译的程序,会经过处理翻译成一个目标文件,也就是机器语言代码。
2)编译过程包括哪几个主要阶段及每个阶段的主要功能。
①词法分析:将源程序转化为字符流,输出单词符号
②语法分析:将单词符号以语法单位输出
③语义分析与中间代码生成:将语法单位与中间代码形式输出
④中间代码优化:为了节省空间和方便管理代码,把中间代码变换成依赖具体机器的目标代码。
⑤目标代码生成:将优化后的中间代码形式生成目标程序供机器识别。
3)简述解释程序与编译程序的区别。
①解释程序:边解释边执行,并不用形成目标程序就能运行程序。
②编译程序:需要编译源程序为目标程序提供给机器识别才能运行。
4)了解新开源的华为方舟编译器(https://www.openarkcompiler.cn/home),理解并谈谈它的基本思想与采用的技术路线,以及它对安卓软件生态会有什么影响。
①基本思想:方舟编译器是为支持多种编程语言、多种芯片平台的联合编译、运行而设计的统一编程平台,包含编译器、工具链、运行时等关键部件。
②技术路线:当前方舟编译器支持Java/Kotlin程序字节码的前端输入,其它编程语言的支持(如 C/C++/JS 等)还在规划中,方舟编译器的中间表示(IR)转换器将前端输入转换成方舟IR,并输送给后端的优化器,最终生成二进制文件,二进制文件与编译器运行时库文件链接生成可执行文件,在方舟的运行环境中就可执行该文件。
③影响:华为方舟编译器的开源很大程度帮助了各行各业将Android优化的更好,让大家更好的将方舟编译器运用的更好!