编译原理概述1

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

   翻译程序是指这样一个程序,它把一种语言所写的源程序翻译成与之等价的另一种语言的目标程序。

   编译程序是一个翻译程序,它能把高级的语言编译成等价的机器语言或汇编语言的目标程序。

   汇编程序指编译生成与之等价的 机器语言。

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

编译过程一共有5个阶段。分别就是词法分析,语法分析,语义分析与中间代码产生、优化、目标代码生成。

词法分析是后台把输入进去的源程序进行扫描分析,并且识别每一个单词。

语法分析是在词法分析的基础上,把每一个单词识别出来整理成一个句子,并且判断这个句子是否合理,用法是否恰当。

 中间代码生成是在语法分析的过程中,把源程序转变成部分代码。

优化是把中间代码产生的代码进行优化,把一些重复的代码,无用的代码进行删除。

目标代码形成是把中间代码(或经优化处理之后)变换成特定机器上的低级语言代码。这阶段实现了最后的翻译。

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

编译程序:编译程序的功能是把用高级语言书写的源程序翻译成与之等价的目标程序。编译过程划分成词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成6个阶段。目标程序可以独立于源程序运行。(编译程序是一个语言处理程序,它可以把高级语言程序给语言翻译成某个机器的汇编语言程序或者是二进制代码程序,这个阶段叫做编译阶段。需要注意的是编译和运行是分两个阶段进行的,也就是说程序必须要全部编译完成后,才能运行。即编程方式执行程序会把源代码翻译成二进制文件的目标代码。)

解释程序:解释程序是一种语言处理程序,在词法、语法和语义分析方面玉编译程序的工作原理基本相同,但在运行用户程序时,它是直接执行源程序或源程序的内部形式(中间代码)。因此,解释程序并不生成目标程序,这是它和编译程序的主要区别。(解释程序的工作模式是一个个的获取、分析并且去执行源程序的语句,一旦第一个语句分析结束后,源程序就会开始运行并且去生成结果,它比较适合以交互方式来进行工作的情况。即解释程序不会生成目标代码。)

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

华为的方舟编译器是华为公司为了提升安卓系统的编译效率推出的一项系统及应用的编译和运行机制,它是将安卓应用开发者们所使用的JAVA、C/C++们转换成机器代码。近日,华为方舟编译器(OpenArkCompiler)正式开源,官网已上线,源代码包、二进制包已提供下载,相关文档、演示等资料也一应俱全。方舟编译器是为支持多种编程语言、多种芯片平台的联合编译、运行而设计的统一编程平台,包含编译器、工具链、运行时等关键部件,目前还在持续演进中,上述能力将陆续实现和开源。通过多语言统一IR表示,方舟编译器可实现应用中多种编程语言联合编译优化提升性能,而且在支持多平台的同时,根据设备特征提供便捷的开发与部署策略提升效率。

猜你喜欢

转载自www.cnblogs.com/wujiabin/p/11452051.html