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

编译程序是一种语言处理程序,它把一个高级语言程序比翻译成某个机器的汇编语言程序或二进制代码程序,这个二进制代码程序在机器上运行以生成结果。

翻译程序是指把高级语言源程序翻译成预计其语言源程序的软件,翻译程序包括编译程序和解释程序。

汇编程序也是一种语言翻译程序,它把语言源程序翻译成机器语言程序。

 

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

两大阶段:分析+综合

分析:词法分析、语法分析、语义分析,主要是理解源程序。

综合:中间代码生成、目标代码,主要实现源程序生成目标代码。

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

语法分析:任务是在词法分析的基础上将单词序列分解成各类语法短语。

语义分析:是审查源程序中有误语义错误,为代码生成阶段收集类型短信。

中间代码生成:在进行了上述的语法分析和语义分析阶段的工作之后,有的编译程序将源程序变成一种内部表示形式,这种内部表示形式叫做中间语言或中间代码。

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

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

编译程序在不把整个程序翻译完成之后,这个程序是不能开始运行,也不能产生任何结果的。

 

解释程序它不需要在运行之前先把源代码翻译成目标代码,也可以实现在某台机器上运行程序并生成结果。

 

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

 

华为方舟编译器开放了框架源码,标志着鸿蒙OS启动开源第一步。方舟编译器对终端软件编译机制进行了架构级优化,将显著地提升用户体验。此次,华为公布方舟编译器框架源码,未来将实现完整开源,此举将聚合全球开发者与合作伙伴智慧,使能产业升级和创新,激发全新的软件生态活力。

 

开发者可基于开源代码+二进制,编译构建出编译器工具链,尝试对Java程序进行编译。社区参与者可以通过框架源码学习方舟编译器的编译器中间表达(IR)及基本的中端编译框架,熟悉方舟编译器的架构思想,并参与诸如对编译器中端优化的贡献。

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

posted on 2019-09-04 11:22  符秋雨  阅读(190)  评论(0编辑  收藏  举报