1.简述编译程序与翻译程序、汇编程序的联系与区别。
编译程序:它将高级语言源程序一次性全部翻译成目标程序,每次执行程序时,只要执行目标程序。
翻译程序:是指把高级语言源程序翻译成机器语言源程序(目标代码)的软件。
汇编程序:汇编程序是一种语言翻译程序,它把汇编语言源程序翻译成机器语言程序。
2)编译过程包括哪几个主要阶段及每个阶段的主要功能。
编译过程主要有5个阶段
a、词法分析:词法分析是编译过程的第一个阶段。这个阶段的任务是从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词。
b、语法分析:语法分析是编译过程的第二个阶段。语法分析的任务是在词法分析的基础上将单词序列分解成各类语法短语,如“程序“,“语句”,“表达式”等。经过语法分析得知其是Pascal语言的赋值语句。
c、词义分析:词义分析是审查源程序有误予以错误,为代码生成阶段手机类型信息。例如,语义分析的一个工作是进行类型审查,审查每个算符是否具有语言规范允许的运算对象,当不符合语言规范时,编译程序应报告错误。
d、中间代码生产:编译程序将程序编程一种内部形式。所谓的“中间代码”是一种结构简单、含义明确的记号系统,这种记号系统可以设计为多种多样的形式,重要的设计原则为两点:一是容易生成;二是容易将它翻译成目标代码。
e、目标代码生成:这一阶段的任务是把中间代码编程特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。这是编译的最后阶段,它的工作与硬件系统和指令含义有关,这个阶段的工作很复杂,涉及硬件系统。
3)简述解释程序与编译程序的区别。
一个完整的编译程序除词法分析程序,语法分析程序,语义分析程序,中间代码生成程序,代码优化程序和目标程序之外必须包括表格管理程序和出错程序
而解释程序·它不需要在运行前先把源程序翻译成目标代码,也可以实现在某台机器上运行程序并生成结果。
4)了解新开源的华为方舟编译器(https://www.openarkcompiler.cn/home),理解并谈谈它的基本思想与采用的技术路线,以及它对安卓软件生态会有什么影响。
华为方舟编译器支持Java/Kotlin程序字节码的前端输入,它支持多语言的联合。通过编译器的语言实现能力和优化能力增强,应用运行时的开销更小,也更流畅。因为方舟编译器比安卓更加流畅,虽然目前的方舟编译器用户以及完善度不如安卓,但是方舟编译器却解决了安卓主要卡顿问题,所以我个人觉得在以后发展中会占掉安卓大部分的市场甚至是取代安卓的地位。