1、简述编译程序与翻译程序、汇编程序的联系与区别
答:联系:编译程序是翻译程序的一种。
汇编程序也是一种语言翻译程序,它把汇编语言源程序翻译成机器语言程序。
区别:编译程序是把高级语言变成计算机可以识别的2进制语言,是对整个写好的程序进行翻译,最终形成目标文件。
汇编程序一般是编译生成与之等价的机器语言。
2、编译过程包括哪几个主要阶段及每个阶段的主要功能。
答:阶段:词法分析,语法分析,语义分析和中间代码生成、优化、目标代码生成。
语法分析是将单词符号,根据语法规则进行分析,最后输出语法单位。
语义分析与中间代码生成则是将语法单位,根据语义规则进行分析,输出中间代码形式(如四元式)。
优化则是为了节省空间和方便管理代码,把中间代码变换成依赖具体机器的目标代码。
目标代码生成则是将优化后的四元式进而生成目标程序。
3、简述解释程序与编译程序的区别。
答:解释程序是一边解释一边执行,而且最终不生成目标程序。
而编译程序是把一个整体编译完再一次性执行,最终会生成目标程序。
4、了解新开源的华为方舟编译器(https://www.openarkcompiler.cn/home),理解它的基本思想与采用的技术路线,谈谈它对安卓软件生态会有什么影响。
答:方舟编译器是为支持多种编程语言(例如:C/C++,Java,JS,Kotlin等)、多种芯片平台的联合编译、运行而设计的统一编程平台,包含编译器、工具链、运行时等关键部件。
它的基本思想是简化内核功能,在内核之外的用户态尽可能多地实现系统服务,同时加入相互之间的安全保护。在技术方面
在未来,方舟编译器会对安卓软件生态系统带来极大的变化。这个静态编译器会取代Android虚拟机模式,以便Android开发者可以在开发环境中一次性将高级语言编译为机器码,可以让代码优化,为开发者带来更加高的开发效率。