了解编译原理
1)简述编译程序与翻译程序、汇编程序的联系与区别。
编译程序就是将源代码文件以字符流的形式进行处理,进行词法和语法的分析,然后通过汇编器将源代码指令转变成汇编指令(由编译器将c源代码(.cpp)转变成汇编代码(.s));翻译程序是指将一种语言等价转换成另外一种语言,继续传达同样的意思或者功能;汇编程序是指把汇编语言代码翻译成目标机器指令(由汇编器将汇编代码(.s)转变成目标代码(.o))。三者之间都改变了原本代码,但是区别程序的不同也代表着改变的形式不同,编译程序将源代码转变成汇编指令,汇编程序则将编译程序转发成的汇编指令转化成目标机器指令,而编译程序跟汇编程序都属于翻译程序。
2)编译过程包括哪几个主要阶段及每个阶段的主要功能。
编译过程包括6个主要阶段,①首先是词法分析,它的主要功能是读入源程序,扫描和分解构成源程序的字符流并识别出每个,最后表示成计算及内部的形式;②然后是语法分析,它的主要功能是在词法分析的基础上,将单词序列分解成各类语法短语,判断语法是否正确;③再是语义分析,它的主要功能是审查源程序有无语义错误,为代码生成阶段收集类型信息;④然后就是中间代码生成,它的主要功能是将源程序翻译成一种复杂性介于源程序和目标程序之间的内部形式;⑤然后就是代码优化,它的主要功能是阶段性地把中间代码进行等价交换,生成更高效的目标代码;⑥最后就是目标代码生成,它的主要功能是把中间代码变换成待定机器上的绝对指令代码或可重新定位的指令代码或汇编指令代码。
3)简述解释程序与编译程序的区别。
编译程序的本质是把整体编译完了之后,再根据总体进行一次性的执行;解释程序的本质是对目标一边执行一边解释 解释一句后就提交计算机执行一句,并不形成目标程序。;总的来说编译程序能生成目标程序,解释程序则不能。
4)了解新开源的华为方舟编译器,理解并谈谈它的基本思想与采用的技术路线,以及它对安卓软件生态会有什么影响。
①方舟编译器的基本思想是在现有的安卓系统的设备上运行一个APP启动虚拟机,再读入应用程序代码,逐条解释执行,是一种静态的编译方式。
②技术路线是它不仅可以将语言里的动态特性直接翻译成机械码,提高效率,还可以实现软硬件协同,充分发挥硬件和软件的效能。
③方舟编译器对安卓软件生态的影响是提升软件原本的流畅度,增强软件的响应收益,节省电量消耗,减少启动时间,增强开发者体验。