9.4第一次作业 了解编译原理

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

编译程序是先完整编译后运行的程序。

翻译程序是指把高级语言源程序翻译成机器语言源程序(目标代码)的软件。翻译程序有两种:一种是编译程序,它将高级语言源程序一次性全部翻译成目标程序,每次执行程序时,只要执行目标程序。另一种是解释程序,它的执行过程是翻译一句执行一句,并且不会生成目标程序。

汇编程序是把汇编指令转换为可执行的机器语言。

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

 

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

第一阶段:词法分析

输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词(亦称单词符号或简称符号)。

 

第二阶段:语法分析

语法分析的任务是:在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类语法单位(语法范畴)。

 

第三阶段:词义分析与中间代码生成

对语法分析所识别出的各类语法范畴,分析其含义,并进行初步翻译(产生中间代码)。

 

第四阶段:优化

对前段产生的中间代码进行加工变换,以期在最后阶段能产生出更为高效(省时间和空间)的目标代码。

 

第五阶段:目标代码生成

把中间代码(或经优化处理之后)变换成特定机器上的低级语言代码。

 

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

翻译程序有两种,一种是编译程序,一种是解释程序

解释程序是一边解释,一边执行,解释一句后就提交计算机执行一句,并不形成目标程序。

编译程序就是把高级语言变成计算机可以识别的2进制语言, 是对整个写好的程序进行翻译,最终形成目标文件。

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

华为方舟编译器是华为公司专门为软件厂商研发的统一编程平台,能够有效解决安卓程序“边解释边执行”的低效率问题。

华为方舟编译器采取了静态编译的方式,是首个取代了安卓虚拟机模式的静态编译器。

方舟编译器采用全程执行机器码高效运行程序,架构进一步得到优化,可供开发者在开发环境一次性的将高级语言编译为机器码,手机安装应用程序后可全速运行程序,带来效率上的极大提升。

猜你喜欢

转载自www.cnblogs.com/fourn666/p/11458049.html