9.4第一次作业

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

①翻译程序是一种系统程序,它将计算机编程语言编写的程序翻译成另外一种计算机语言的一般来说等价的程序,主要包括编译程序和解释程序,汇编程序也被认为是翻译程序。

②编译程序也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。

③汇编程序是指把汇编语言书写的程序翻译成与之等价的机器语言程序的翻译程序。汇编程序输入的是用汇编语言书写的源程序,输出的是用机器语言表示的目标程序。

总的来说就是,编译器将高级语言翻译成汇编语言,然后通过汇编程序将汇编语言翻译成机器语言。但是编译器只能将源语言编译成目标语言。编译程序是翻译程序之一,汇编程序是将汇编语言翻译成机器语言。

 

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

编译过程划分为五个主要阶段:词法分析、语法分析、语义分析与中间代码产生、优化、目标代码生成。

词法分析:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词

语法分析:在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类语法单位

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

优化:优化的任务在于对前段产生的中间代码进行加工变换,以期在最后阶段能产生出更为高效(省时间和空间)的目标代码。优化的主要方面有:公关子表达式的提取、循环优化、删除无用代码等等。

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

 

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

编译执行是读完所有的语句再执行,解释执行是边读语句边执行,后者花的时间显然要多,对效率会产生影响,但却能无形中健壮程序

 

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

方舟编译器正是因为方舟做到混合语言的统一中间表示和完全静态编译,它干掉了虚拟机,消除了JNI开销,告别了GC内存回收的“间歇性”卡顿,以及其他很多开销。同时,为开发者进行代码优化提供了一个更广阔的舞台。

posted @ 2019-09-04 11:09  沧笙。  阅读(177)  评论(0编辑  收藏  举报