编译原理概述

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

    翻译程序是指把高级语言源程序翻译成机器语言源程序的软件。编译程序是先完整编译后运行的程序;解释程序是一句一句翻译且边翻译边执行的程序。汇编程序也是一种语言翻译程序,它把汇编语言源程序翻译成机器语言程序

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

  编译过程包括词法分析、语法分析、语义分析和中间代码生成、优化、目标代码生成5个阶段。词法分析 任务:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词。 语法分析任务:根据语言的语法规则,把单词流组成各类语法单位。语义分析:检查程序的语义正确性,以保证程序各部分能有意义的结合在一起,为以后的代码生成阶段收集类型信息。中间代码生成:根据语义规则产生一种介于源语言与目标代码之间的一种中间代码。代码优化:对前面产生的中间代码进行加工变换,以期在最后阶段能产生更为高效的目标代码。目标代码生成:把经过优化的中间代码转化成特定 机器上的低级语言代码。

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

  编译程序是整体编译完了,再一次性执行。而解释程序是一边解释,一边执行。 解释一句后就提交计算机执行一句,并不形成目标程序。就像外语翻译中的“口译”一样,说一句翻一句,不产生全文的翻译文本。

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

  方舟编译器首次在Java领域将虚拟机干掉了,也是软件史上首次将Java/C/C++等混合代码一次编译成机器码直接在手机上运行,彻底告别Java的JNI额外开销,也彻底告别了虚拟机GC内存回收带来的应用进程掉线,使操作流畅度大幅提升。如果说目前最新的安卓系统是和谐号动车,那么经方舟编译的安卓系统便是高铁,是“复兴号”。华为方舟编译器,直接将代码优化从手机环节搬到了开发者环境,未来还可能搬到云端。利用开发者环境更强大的算力,可以实现更先进和精细的优化算法,来达到更强大的优化效果,在很多特定场景代码优化的提升甚至是颠覆性的。

 

你可能感兴趣的:(编译原理概述)