第一次作业

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

      编译的过程就是将源代码文件以字符流的形式进行处理,进行词法和语法的分析,然后通过汇编器将源代码指令转变成汇编指令;编译程序相比翻译程序,它划分成词法分析、语法分析、语义分析、中间代码生成、优化代码以及目标代码生成六个阶段,更为细致。

      而汇编过程其实就是把汇编语言代码翻译成目标机器指令的一个过程。对于被翻译系统处理的每一个C语言源程序,都将最终经过这一处理而得到相应的目标文件。目标文件中所存放的也就是与源程序等效的目标的机器语言代码;

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

     编译过程划分成词法分析、语法分析、语义分析、中间代码生成、优化代码以及目标代码生成一共六个阶段。

     词法分析:本阶段是从左到右逐个字符读入源程序,对构成源程序的字符流进行扫描以及分解。

     语法分析:在词法分析的基础上将单词序列分解成各类语法短语。

     语义分析:审查源程序有无语义错误。

     中间代码生成:在以上步骤之后,编译程序将源程序变成一种内部表达的形式,即中间代码生成。

     代码优化:对中间代码进行变换或进行改造,使生成的目标代码更高效,节省时间和空间。

     目标代码生成:将中间代码变换成特定机器上的绝对指令代码或者是可重定位的指定代码、汇编指令代码。

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

     简单来说编译程序能生成目标程序,但是解释程序不能。

     编译程序是整体编译完了,再一次性执行。而解释程序是一边解释,一边执行。

     编译器相比解释器能把源程序的每一条语句都编译成机器语言,并保存成二进制文件,而解释器只在执行程序时,才逐条解释成机器语言给计算机来执行。

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

     苹果系统从一开始就是直接编译成机器码,安卓用了十年还没搞定,= =Google真的是。。不知道说什么好,这个推广开以后华为就可以推广自己的鸿蒙系统,就可以架空谷歌了,我要是谷歌我就肯定往里面掺点沙子

 

posted on 2019-09-04 11:41  dyunc3  阅读(161)  评论(0编辑  收藏  举报

导航