9月4日做业

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

整体来讲,编译语言和汇编语言都是翻译语言的其中一种,都是将一种语言书写的程序翻译成另外一种语言的等价程序。框架

区别在于,翻译程序中不止有编译程序一种,还存在一种解释程序,它相较于编译程序的区别在于它执行时并不会将源语言所有翻译成目标程序在执行,而是每翻译一句就会当即执行。编程语言

     另外的,将源语言为汇编语言的翻译成目标语言为机器语言的翻译程序,被叫作汇编程序。模块化

     而将源语言那种的高级语言翻译成汇编语言或者机器语言那种低级语言的翻译程序,被叫作编译语言。工具

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

典型的划分方式中会将编译过程划分红以下6各阶段(主要功能也一并列入):spa

     阶段一---词法分析:逐字符读入源程序,扫描和分解源程序字符流,进而识别出一个个单词。翻译

     阶段二---语法分析:其功能是在词法分析的基础上,,将单词序列分解成各种语法短语。开发

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

     阶段四---中间代码生成:其功能将源程序翻译成一种结构简单含义明确的内部表达形式,又叫座中间语言,中间代码。

     阶段五---代码优化:其是对上一段的中间代码进行变换改造。

     阶段六---目标代码生成:其功能是将中间代码变换成特定的机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。

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

     解释程序相对于编译程序最重要的区别在于:

      一、解释程序不会产生目标程序文件。

      二、不区别翻译阶段和执行阶段。

      三、翻译源程序的每一条语句后直接执行。

      四、程序执行期间一直有解释程序守候。

      五、经常使用于实现虚拟机。

     总的说,编译程序是先将源程序所有转换成目标程序再执行,而解释程序是每翻译一句就执行一句。

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

     简单理解:方舟编译器是一个模块化的工具,用于开发,它可让开发人员没必要写复杂的电脑语言,像Java、PHP、VB、C++等,在编写的时候都有本身的语法,人们用编程语言就能够开发软件了。

     技术思路和路线:就是,它跳过了反锁的虚拟机程序,直接把指令告诉了手机,手机去执行,中间少了一个传话的流程,因此能够明显提高手机的运行效率,如:打开应用的速度,传送文件的速度,拍照的响应速度,甚至开机关机的速度。它要求全部人用这个框架开发应用,它用更高级的可视化操做简化编程时间和流程,而后用统一的指令告诉手机应该怎么作,这中间不论是谁来操做都是同样的流程和格式,因此应用的质量会有明显提高,这不只是速度上的东西,甚至还能够帮助应用自己减小压缩包的体积,这是一个连锁反应,而且是好的方向。

     对安卓软件生态的影响:我认为若是这个编译器可以正式的全面普及应用,对安卓软件市场将会有至关巨大的正面影响。不过在我看来可否全面普及仍是十分很差说的,由于它牵连到了太多人的利益和面子,只有等到谷歌的全面回应了。不得不说资本是一把双刃剑,它既能带动科学技术的发展,有时也会阻碍科学技术的发展,当任何事物有资本融入牵连进来时,都会变得十分复杂,步步受碍。