第一次作业(新)

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

答:编译程序、翻译程序、汇编程序都是解释程序,编译程序是把高级语言源程序翻译成机器语言源程序的软件。翻译程序是先生成目标程序然后在输入、输出。编译程序和汇编程序的区别在于编译程序的源语言是诸如C、C++、Java等“高级语言”,而目标语言是诸如汇编语言或机器语言之类的“低级语言”,而汇编程序源语言是汇编语言,而目标语言是机器语言。

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

编译过程主要包括词法分析、语法分析、语义分析、中间代码生成、中间代码优化、目标代码生成和目标代码优化。

词法分析这个阶段的任务是一个一个字符地读入源程序,对构成源程序的字符流进行扫描和分解。

语法分析阶段的任务是在词法分析的基础上将单词序列分解成各类语法短语。

语义分析是审查源程序有无语义错误,为代码生成阶段收集类型信息。

中间代码生成是在上述阶段的工作之后将源程序变成一种内部形式。

代码优化这一阶段是将产生的中间代码进行变换、改造,使得生成的目标代码更为高效。

目标代码生成这一阶段的任务是把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。

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

解释程序直接对源代码进行输入输出,不需要在运行前先把源程序翻译成目标代码,而编译程序则需要在运行前先将源程序翻译成目标代码,然后再输入输出。

4)方舟编译器是为支持多种编程语言、多种芯片平台的联合编译、运行而设计的统一编程平台,包含编译器、工具链、运行时等关键部件。方舟建造的初衷就是为了拯救。而华为创造出方舟编译器拥有拯救中国没有自己的手机系统做基础。

     世界主流的手机系统是安卓和IOS,而安卓是使用最大、最多的手机系统。但是他的致命缺点就是系统越使用越卡,这是安卓系统特点带来的问题。而华为退出的方舟编译器突破了安卓的这个缺点。安卓运行程序靠的是VM中的编译器和解释器,也就是边翻译边解释。这就导致了运行的不定时卡顿!VM带来的另一个问题就是VM统一回收的垃圾也会造成卡顿。方舟编译器跨过了这道坎,绕过了VM,彻底消除了虚拟机动态编译的额外开销,实现了开发和运行效率的兼容并举,从边翻译边执行到提前编译机器码,直接执行!

    直接带来的好处就是:Apps 运行的更快,因为 DEX 字节码的解释在安装过程中已经完成,直接运行机器码减少了应用的启动时间,因为本地代码可以直接执行。节省电量消耗,不需要再去一行一行的解释字节码。增强了垃圾回收。增强了开发者工具。

    方舟编译器作为全新的系统及应用的编译和运行机制,从DNA层面对安卓进行了改造,解决了安卓应用边解释边运行的低效问题,让手机能直接听懂“高级语言”,可以说是近几年来安卓阵营最大的根本性革新。它大幅降低了安卓系统随机卡顿的问题,打破了人机之间的藩篱,让用户能直观感受到的就是使用体验更加持久流畅。

猜你喜欢

转载自www.cnblogs.com/ldtasdf/p/11452057.html