编译原理作业1

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

答:翻译程序是指把高级语言源程序翻译成机器语言源程序的软件,编译程序属于翻译程序的一种。汇编程序也是一种语言翻译程序,它把汇编语言源程序翻译成机器语言程序。

 

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

答:有6个阶段,分别为:

1、词法分析:功能是从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词。

2、语法分析:功能是在词法分析的基础上将单词序列组合成各类语法短语,如"程序","语句","表达式"等等。

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

4、中间代码生成:功能是编译程序将源程序变成一种内部表示形式,这种内部表示形式叫做中间语言或中间代码。

5、代码优化:功能是对前一阶段产生的中间代码进行变换或进行改造。

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

 

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

答:编译程序是全部编译完后,再一次性执行。而解释程序是一边解释,一边执行,不区分翻译阶段和执行阶段,不形成目标程序。

 

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

答:华为方舟编译器采取了静态编译的方式,该编译器支持多种编程语言、多种芯片平台的联合编译与运行。它对安卓软件生态会产生影响。提升了用户体验。

posted on 2019-09-04 10:58  红庙坡破  阅读(209)  评论(0)    收藏  举报

导航