第一课 编译程序

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

 

答:编译程序是现代计算机的基本组成部分之一,编译程序是先完整的编译后允许的程序,例如javac语言等高级语言;翻译程序是指把高级的语言程序翻译成机器语言源程序的软件;汇编程序也是一种语言翻译程序,它把汇编语言源程序翻译成机器语言程序。

他们之间的联系:翻译程序包含编译程序和解释程序。编译程序可以编译后通过解释程序运行,它也可以从高级的语言编译成汇编语言再通过解释程序运行。

编译程序与汇编程序的区别:如果源语言是诸如CC++Java等“高级语言”,而目标语言是诸如汇编语言或机器语言之类的“低级语言”,这样的一个翻译程序称为编译程序。如果源语言是汇编语言,而目标语言是机器语言,这样的一个翻译程序称为汇编程序。

 

 

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


答:编译过程包括词法分析、语法分析、语义分析、中间代码生成、目标代码生成,其中词法分析的功能是对每个字符读入源程序,对构成的源程序字符进行扫描和分解,从而识别出一个个单词;语法分析的功能是将单词序列分解成各类语法短语,如“程序”“语法”等;语义分析是审查源程序是否亦语义错误;中间代码生成的功能是在语法和语义分析后,有的编译程序将源程序变成一种内部表示形式;目标代码生成的功能是将中国中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。

 

 

 

 

 

 

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

 

 

 

答:解释程序也称为解释器,它或者直接解释执行源程序,或者将源程序翻译成某种中间表示形式后再加以执行;编译程序(编译器)则是将源程序翻译成目标语言程序,然后在计算机上运行目标程序。两种语言处理程序的根本区别是:在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程,而在解释方式下,解释程序和源程序(或某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。

 

 

 

 

 

 

 

 

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

 

答:方舟编译器,采用了全新的系统及应用的编译和运行机制,对所有的 Java 语义全部做到静态编译,直接将 Java 语言“翻译”成机器语言(静态编译),消除了虚拟机动态编译的额外开销,实现了开发和运行效率的兼容并举

方舟编译器对安卓软件生态的影响:华为方舟编译器能够有效解决安卓程序“边解释边执行”的低效率问题。华为方舟编译器采用全程执行机器码高效运行程序,架构进一步得到优化,性能也有明显提升。相较与此前流畅度,通过华为方舟编译器编译后的程序系统,操作流畅度提升24%,系统响应速度提升44%,三方应用操作流畅度提升60%。

posted @ 2019-09-04 11:40  爱飞的大白鲨  阅读(262)  评论(0编辑  收藏  举报