zoukankan      html  css  js  c++  java
  • 第一次作业:了解 编译原理

    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内存回收的间歇性卡顿,以及其他很多开销。同时,为开发者进行代码优化提供了一个更广阔的舞台

    
    
  • 相关阅读:
    call和apply的区别
    淘宝镜像(cnpm)的安装和使用
    文件包含漏洞
    vue简单的日历
    微信小程序(mpvue)—解决视频播放bug的一种方式
    vue 异步组件
    vuex的学习笔记
    vue2.0 添加监听滚动事件
    jquery tmpl生成导航
    vue 控制视图
  • 原文地址:https://www.cnblogs.com/hzxx/p/11457879.html
Copyright © 2011-2022 走看看