1)简述编译程序与翻译程序、汇编程序的联系与区别。
编译程序将高级语言翻译成汇编语言,再通过汇编程序将汇编语言翻译成机器语言,但是编译程序只能将源语言(高级语言,如Python、C++)编译成目标语言(低级语言,汇编语言),
编译程序是翻译程序的一种,汇编程序是将汇编语言翻译成机器语言。
2)编译过程包括哪几个主要阶段及每个阶段的主要功能。
前端:词法分析、语法分析、语义分析、生成中间目标
中端:中间目标优化、综合
后端:目标代码生成、优化、综合
3)简述解释程序与编译程序的区别。
编译程序,它将高级语言源程序一次性全部翻译成目标程序,每次执行程序时,只要执行目标程序。解释程序,它的执行过程是翻译一句执行一句,并且不会生成目标程序。
4)了解新开源的华为方舟编译器(https://www.openarkcompiler.cn/home),理解它的基本思想与采用的技术路线,谈谈它对安卓软件生态会有什么影响。
华为方舟编译器最大的特点在于,它是业内第一款支持多语言联合优化的编译器,也就是说无论是C/C++还是Java都支持。因此,面对采用混合语言开发的安卓应用,方舟编译器可以在开发环境中
编译成统一的流程,通过统一的程序表示和优化来执行,效率更高。也就是说,现有安卓的运行机制就像是两个人各自准备任务,最后将他们的准备的结果综合在一起执行。而方舟编译器则是让这
两个人一起准备,之后再一同执行任务。安卓系统本身的编译是要通过ART虚拟机运行,因此系统资源占用较大。而方舟编译器则是在开发的时候就已经完成了静态编译,同时,方舟编译器还提供
了更高效的内存回收机制。由于不需要经过虚拟机,应用在运行过程中不需要暂停,同时随时回收内存,而不是将垃圾堆在一起回收。方舟编译器还有一大核心功能就是对代码进行优化。所谓代码
优化,就是为程序带来更高的性能。通过方舟编译器可实现系统操作流畅度提升24%,系统响应提升44%,第三方应用操作流畅度提升60%。