第一次作业、了解编译原理

(1)简述编译程序与翻译程序、汇编程序的联系与区别。

答:翻译程序包括编译程序和解释程序。
汇编程序:由汇编原因编写源程序,翻译成机器指令及其他信息组成的目标程序的工具程序。
区别:编译程序运行会产生目标程序,汇编程序产出二进制机器指令。

(2)编译过程包括哪几个主要阶段及每个阶段的主要功能。

答:编译过程包括两个大部分:预处理、预编译。
编译预处理对文件中的四种情况处理:宏定义、#include文件包含、条件编译、特殊符号。
编译预编译对源程序中出现的特殊符号解释串用合适的值进行替换。

(3)简述解释程序与编译程序的区别。

答:编译:专指由高级语言转换为地基语言,解释:接受某高级语言的一个语言输入,进行解释并控制计算机执行,马上得到这句的执行结果,然后再接受下一句。

编译器:工作效率高,即时间快、空间省;交互性与动态特性差、可移植性差。大多数PL采用此种方法翻译

解释器:工作效率低,即时间慢、空间费;交互性与动态特性好、可移植性好。早期的Basic和现在的Java等。

(4)了解新开源的华为方舟编译器(https://www.openarkcompiler.cn/home),理解并谈谈它的基本思想与采用的技术路线,以及它对安卓软件生态会有什么影响。

答:方舟编译器作为开发工具,为移动应用生态和体验打开一扇全新的大门。科技的进步,离不开全球无数科学家和工程师的奉献。产业的繁荣,开放是唯一出路!

华为方舟编译器提供了全新的系统及应用的编译和运行机制。将动态编译变为静态编译,使高级语言直接编译成机器码,消除了安卓虚拟机动态编译的额外开销。

 华为方舟编译器内存回收回收时无需暂停应用,随时用随时回收,安卓在内存上全局回收时需要暂停应用,会产生随机卡顿。

方舟编译器通过了大量的优化和调整,一方面对Java语言深入了解后再细致重建,另一方面对机器指令顺序结构理解要求非常清晰,这两方面的匹配度越高,编译器效率越高。

猜你喜欢

转载自www.cnblogs.com/fzwboke/p/11458091.html