作业1 了解编译原理

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

  翻译程序是指把高级语言源程序翻译成机器语言源程序的软件。翻译程序有两种:一种是编译程序,它将高级语言源程序一次性全部翻译成目标程序,每次执行程序时,只要执行目标程序。另一种是解释程序,它的执行过程是翻译一句执行一句,并且不会生成目标程序。编译程序是先完整编译后运行的程序,如C、C++等;解释程序是一句一句翻译且边翻译边执行的程序,如JavaScript、Python等。附C语言编译链接过程:编译程序与汇编程序的区别:如果源语言是诸如C、C++、Java等“高级语言”,而目标语言是诸如汇编语言或机器语言之类的“低级语言”,这样的一个翻译程序称为编译程序。如果源语言是汇编语言,而目标语言是机器语言,这样的一个翻译程序称为汇编程序。

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

  编译过程可分为五个阶段,分别是:词法分析、语法分析、中间代码生成、代码优化、目标代码生成。

  词法分析:从左到右扫描源程序,识别出每个单词。

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

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

  代码优化:对已经产生的中间代码进行加工变换,使生成的目标地阿妈更高效。

  目标代码生成:把中间代码变换成特定机器上的低级语言代码

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

  解释程序是将高级程序设计语言写的源程序作为输入,边解释边执行源程序本身,而不产生目标程序的翻译程序。

  编译程序是将高程序设计语言翻译成逻辑上等价的低级语言(汇编语言,机器语言)程序的翻译程序。

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

  长久以来,许多消费者都将手机是否卡顿作为区分安卓系统和iOS系统的重要标准。不过,近两年,随着安卓方面不断收回系统操作权限以及加强对生态环境的控制,安卓旗舰的手机运行流畅度已经大幅提升。华为更是带来了方舟编译器,号称可以让安卓机获得到不输iPhone的流畅度,从此告别卡顿。

  华为方舟编译器之所以如此强大,根本原因在于其能从手机应用最根本的编译阶段进行优化。使用华为方舟编译器的机型可以从边解释边执行变为全程刚高效运行的程序,这会大幅提升手机的工作效率,进一步发挥手机硬件潜力。目前华为方舟编译器已经随华为EMUI9.1系统进入到华为多款机型当中未来、未来更多的华为手机都将陆续配备该技术。

  华为开源方舟编译器其实也是在侧面展示自己的实力,如今华为鸿蒙系统已经发布,未来该系统无疑会成为华为的核心。而想要令鸿蒙系统快速成长,其他手机产厂商的帮助自然是必不可少,通过方舟编译器也能令其他厂商认识到鸿蒙系统的价值,未来共同合作

原文地址:https://www.cnblogs.com/wh008/p/11457825.html