了解编译原理9.4第一次作业
1)简述编译程序与翻译程序、汇编程序的联系与区别。
编译程序是把高级语言源程序翻译成机器语言源程序的软件。C,c++,JAVA等高级语言,先编译后运行。
汇编程序也是语言翻译程序,把汇编语言源程序翻译成机器语言源程序。
区别
源语言是C,C++等高级语言,目标语言是机器语言或汇编语言等“低级语言”的话这种翻译程序叫编译程序,而如果源语言是汇编语言,目标语言是机器语言的话这种编译程序叫汇编程序。
2)编译过程包括哪几个主要阶段及每个阶段的主要功能。
1、预编译,又称为预处理 , 是做些代码文本的替换工作
2、编译,由编译器将c源代码(.cpp)转变成汇编代码(.s)
3、汇编,由汇编器将汇编代码(.s)转变成目标代码(.o)
4、链接,由链接器将代码在执行过程用到的其他目标代码和库文件链接成为一个可执行程序也就是目标程序。
3)简述解释程序与编译程序的区别。
编译程序先编译在执行。
解释程序一边解释一边执行。
4)了解新开源的华为方舟编译器(https://www.openarkcompiler.cn/home),理解并谈谈它的基本思想与采用的技术路线,以及它对安卓软件生态会有什么影响。
通过编译器的语言实现能力和优化能力的增强,应用运行时开销更小。将同一应用中的不同语言代码联合编译、联合优化,消除语言间的性能“鸿沟”,降低开发者的优化成本。编译器与芯片实现软硬件协同优化,充分发挥硬件能效,应用体验更佳。
对于安卓软件生态会提高软件对于系统内存的开销,降低损耗同时延长安卓手机生命周期。