第一次作业

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

编译程序是一类很重要的语言处理程序,它把高级语言(如FORTRAN、COBOL、Pascal、C等)源程序作为输入,进行翻译转换,产生出机器语言的目标程序,然后再让计算机去执行这个目标程序,得到计算结果。编译程序工作时,先分析,后综合,从而得到目标程序。

  翻译程序是指一个程序,它把一种语言所写的源程序翻译成与之等价的另一种语言的目标程序。解释程序也是一种翻译程序,它将源程序作为输入并执行它,边解释边执行。它与编译程序的主要区别在于在解释程序执行的过程中不产生目标程序,而是按照源语言的定义解释执行源程序本身。

  汇编程序要一个翻译策程序,它把汇编语言程序翻译成机器语言程序。

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

  编译程序划分为6个阶段,分别是词法分析、语法分析、中间代码生成、代码优化和目标生成。词法分析是编译过程的第一个阶段,是从左到右一个字符一个字符地读入源程序,对构成源程序的字符流行进行扫描和分解,从而识别一个个单词。语法分析是在词法分析的基础上将单词序列分解成各类语法短语,如:“程序”、“语句”、“表达式”等。语义分析是审查源程序有无语义错误,为代码生成阶段收集类型信息。中间代码生成是在进行了上述的语法分析和语义分析阶段的工作之后,有的编译程序将源程序变成一种内部表示形式,这种内部表示叫做中间语言或中间代码。所谓中间代码是一种简单的结构。代码优化是对前一阶段产生的中间代码进行交换或进行改造,目的是使生成的目标代码更为高效、即节省时间和节省空间。目标代码生成是把中间代码变成特定机器上的绝对指令代码或重定位的指令代码或汇编指令代码。这是编译的最后阶段,它的工作最为重要。

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

  解释程序是一个语言处理程序,它把一个高级语言程序翻译成某个机器的汇编语言程序或二进制代码程序,这个二进制代码程序在机器上运行以生成结果。但是不把整个程序全部翻译完成,另外一个语言处理程序叫解释程序,它不需要在运行前先把源程序翻译成目标代码,这也可以实现在某平台上运行并生成结果。解释与程序接受某个语言的程序并立即运行这个源程序。

  编译程序和解释程序的存储组织也有很大的不同。经由编译程序处理时,在源程序被编译的阶段,存储中要为源程序和目标代码开辟空间,要存放编译要用的各种表格;所谓编就是对源程序和中间语言程序从头到尾扫描并完成规定的任务的过程。

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

  方舟编译器真正用到安卓上,那肯定带来更多的用户使用安卓系统类的电子产品;直接带动整个安卓生态的发展,成为安卓软件中效率最好,性能最优的体现。方舟编译器的基本思想是不利用系统编解释边编译的思想下,在软件安装时,空闲情况就已经把软件代码直接做编译,这样到系统打开软件时就能直接执行,而不再需要编译大大的节省cpu性能的消耗,节省资源,用户体验必定更加流畅。方舟编译器是华为专门为软件厂商开发的一款编译器,能够有效解决安卓程序“边解释边执行”的低效率问题。华为方舟编译器采用全程执行机器码高效运行程序,架构进一步得到优化,性能也有明显提升。相较与此前流畅度,通过华为方舟编译器编译后的程序系统,操作流畅度提升24%,系统响应速度提升44%,三方应用操作流畅度提升60%。

  

 

你可能感兴趣的:(第一次作业)