• 第一次作业:了解 编译原理


    2.作业

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

    翻译程序:把高级语言源程序翻译成目标代码的软件。

    编译程序:先完整编译后运行的程序,比如有C、C++之类的;解释程序是一句一句翻译且边翻译边执行的程序,例如有JavaScriptPython。

    汇编程序:是把汇编语言源程序翻译成机器语言程序

    编译程序与汇编程序的区别将一段“高级语言”编译成目标语言是诸如汇编语言或机器语言之类的“低级语言”,这个过程的翻译程序称为编译程序。如果源语言是汇编语言,而目标语言是机器语言,这个过程翻译程序称为汇编程序。

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

    编译过程主要四个阶段预编译处理编译优化程序汇编程序 链接程序。

    预编译处理:把.c 文件转化成.i文件

    编译优化程序:把.c/.h文件转换成.s文件

    汇编程序:把.s 文件转化成.o文件 

    链接程序:把.o文件转化成可执行程序

     

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

    编译程序是高级语言转化为低级语言,而解释程序是把某高级语言行解释并控制计算机执行,然后会出现的执行结果,然后再解释下一句。

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

    基本思想:

    方舟编译器首次在Java领域将虚拟机干掉了,也是软件史上首次将Java/C/C++等混合代码一次编译成机器码直接在手机上运行,彻底告别Java的JNI额外开销,也彻底告别了虚拟机GC内存回收带来的应用进程掉线,使操作流畅度大幅提升。如果说目前最新的安卓系统是和谐号动车,那么经方舟编译的安卓系统便是高铁,是“复兴号”。

    华为手机直接通过方舟编译器替换了Android system-server的所有后台服务,这一项就已经足够让华为EMUI比其他安卓系统更快一步。

    技术路线:

    该编译器将java和C(JNI)编译成一套可执行文件

    输入用户源代码,先将其中java语言进行优化,之后将它转换为C语言(JNI),从而提高执行效率。

    影响:

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

    
    
  • 相关阅读:
    gulp + es6 + babel+ angular 搭建环境并实现简单的路由
    【SAS BASE】FORMAT Statement及PROC FORMAT
    【SAS BASE】PROC PRINT
    【SAS BASE】PROC SORT
    【SAS BASE】ARRAY语句及多变量简写
    【SAS BASE】SAS函数
    【SAS BASE】PROC CONTENTS与LABEL
    【SAS BASE】SAS格式、缺失值表示、命名规则及路径
    【SAS BASE】IMPORT过程(适用于CSV文件及其他分隔符文件)
    【SAS BASE】通过DATA步导入数据注意事项(适用于text、ASCII、sequential、flat文件)
  • 原文地址:https://www.cnblogs.com/hzxx/p/11457879.html
Copyright © 2020-2023  润新知