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

  翻译程序指把高级语言源程序翻译成机器语言源程序(目标代码)的软件。翻译程序有两种:一种是编译程序,它将高级语言源程序一次性全部翻译成目标程序,每次执行程序时,只要执行目标程序。另一种是解释程序,它的执行过程是翻译一句执行一句,并且不会生成目标程序。

编译程序是先完整编译后运行的程序,如C、C++等;解释程序是一句一句翻译且边翻译边执行的程序,如JavaScript、Python等。如图

  汇编程序也是一种语言翻译程序,它把汇编语言源程序翻译成机器语言程序。

  编译程序汇编程序的区别:如果源语言是诸如C、C++、Java等“高级语言”,而目标语言是诸如汇编语言或机器语言之类的“低级语言”,这样的一个翻译程序称为编译程序。如果源语言是汇编语言,而目标语言是机器语言,这样的一个翻译程序称为汇编程序。

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

  编译阶段也常常划分为两大步骤,分析步骤综合步骤 分析步骤和综合步骤 分析步骤是指对源程序的分析 -线性分析(词法分析或扫描) -层次分析(语法分析) -语义分析 综合步骤是指后端的工作,为目标程序的生成而进行的综合。

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

  编译程序能生成目标程序,而解释程序不能。编译程序是整体编译完了,再一次性执行。而解释程序是一边解释,一边执行。 解释一句后就提交计算机执行一句,并不形成目标程序。就像外语翻译中的“口译”一样,说一句翻一句,不产生全文的翻译文本。编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快。而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的。这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)。

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

  众所周知,搭载安卓系统的手机在经过长时间的使用之后,经常会出现使用卡顿和图像传输延后以及网络连接不畅等问题。长期以来这个问题一直没能彻底解决,方舟编译器或许是这个问题的终结者。其实,方舟编译器是华为历经多年打造出来的秘密武器,也许大家不是很了解什么是方舟翻译器,举个例子好了,当我们碰到外国人并且语言不通的时候,这个时候就需要一个中介作为翻译传递互相的信息。

  简单来说,方舟编译器就是可以将高级语言比如Java,直接编译成变成机器码的技术。它最大的优势就在于绕过了安卓系统的VM(虚拟机),从使得应用可以像苹果引以为傲的iOS系统一样,转化出的机器码可以直接由CPU运算,从而使得运行效率大大提升

  更详细的说,现在的安卓手机采用的是动态编译,在手机上进行编译,往往有部分程序需要一边转换一边执行,影响程序执行的效率。而方舟编译器是采用全新的系统及应用的编译和运行机制,对所有的 Java 语义全部做到静态编译,直接将Java 语言“翻译”成机器语言,代替高资源消耗的动态编译。所以相比起单纯的翻译机器来说,华为方舟编译器更像是让您直接获得了语言能力,对比单纯作为翻译中介,更将运行效率大幅度提升,从根本上改善安卓系统运行慢的弊端。

  根据华为实验室的测试数据,EMUI 9.1 在仅仅对系统组件 System Server 应用了华为方舟编译器后,系统操作流畅度提升 24%,系统响应性能提升 44%。同时,新浪微博极速版在应用方舟编译器之后,操作流畅度最高提升了60%。根据华为的监测数据来看,方舟编译器可以说是给安卓系统带来了一场革命性的升级变革,着实让业界侧目。

  

转载于:https://www.cnblogs.com/Rakers1024/p/11457336.html

编译程序与翻译程序、汇编程序的联系与区别,编译过程包括的几个主要阶段,解释程序与编译程序的区别...相关推荐

  1. 【编译原理】-- 第一章(翻译程序、编译程序、汇编程序、解释程序、编译过程概述)

    编译系统 高级语言的优点是有代价的,必须有一个"翻译程序",也就是高级语言必须有相应的软件支持系统,"编译程序+相应的支持用户程序"---编译系统. 一般这种编 ...

  2. 编译程序,翻译程序,解释程序,目标程序解释

    目标程序: 又称为"目的程序",是源程序被编译后能够被机器直接运行的机器码的集合,在计算机上以.obj作扩展名.由语言程序(编译程序,汇编程序,解释程序)处理成与之等价的机器码构成 ...

  3. 解释程序与解释程序的缺点,图解——解释程序与编译程序的区别

    1.解释程序 解释程序是一个一个的获取.分析并执行源程序语句,一旦一个语句分析完成,解释程序便开始运行并生成结果.语言程序的调试就可以用解释器来实现 2.解释程序的缺点 1.程序的解释是非常慢的,有时 ...

  4. 高级语言编译的六个过程,解释程序和编译程序的区别

    高级语言编译的六个过程 编译就是要把高级语言的源程序翻译成目标程序的过程. 一般整个过程可划分为词法分析.语法分析.语义分析.中间代码生成.代码优化和目标代码生成6个阶段. 有一种说法 编译有七个过程 ...

  5. 解释程序和编译程序的区别

    1.什么是编译程序和解释程序 编译程序和解释程序是程序执行的两种不同执行方式. 2.编译程序和解释程序的区别 编译程序:编译程序的功能是把用高级语言书写的源程序翻译成与之等价的目标程序.编译过程划分成 ...

  6. 【编译原理】解释程序与编译程序的主要区别

    [编译原理]解释程序与编译程序的主要区别 解释程序与编译程序的主要区别是: 编译程序将源程序翻译成目标程序后再执行该目标程序: 而解释程序则逐条读出源程序中的语句并解释执行,即在解释程序的执行过程中并 ...

  7. 网页HTTP协议 get和post请求区别?(HTTP中Get、Post、Put与Delete的区别)

    文章目录 这篇也不错:浅谈HTTP中Get.Post.Put与Delete的区别 GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GE ...

  8. Java编译过程、c/c++编译过程区别

    Java编译原理 1.Java编译过程与c/c++编译过程不同 Java编译程序将java源程序编译成jvm可执行代码--java字节码. c/c++编译过程: 当C编译器编译生成一个对象的代码时,该 ...

  9. linux release 版本的区别,编译debug版本和编译release版本的区别

    大项目的版本编译会区别debug和release,那debug和release会有什么区别呢? 通过对比这两者的编译选项可以找到答案. 1.对比编译过程 debug: -DOS_LINUX  -DDE ...

最新文章

  1. R语言plotly可视化:plotly可视化分裂的分组小提琴图、每个小提琴图内部分为两组数据、每个分组占小提琴图的一半(Split violin plot in R with plotly)
  2. python中字符串前面加一个u或者r的区别
  3. A-Light-and-Fast-Face-Detector-for-Edge-Devices
  4. 01两数之和(哈希表)
  5. 2016 Multi-University Training Contest 3
  6. java自定义序列化_Java中的自定义国际化(i18n)
  7. 透析阿里云视频云「低代码音视频工厂」之能量引擎——vPaaS视频原生应用开发平台
  8. 图论 —— 着色问题
  9. pytorch: 自定义数据集加载
  10. 反思 大班 快乐的机器人_幼儿园大班体育课教案《小熊斗怪兽》含反思
  11. 常见10种自然语言处理技术
  12. Python图片处理PIL简介
  13. 计算机怎么设置默认桌面,盒子如何将沙发桌面设置成默认桌面?
  14. windows在此计算机上找不到系统映象,笔记本电脑没有系统映像怎么办
  15. Adobe Photoshop快捷键_艾孜尔江摘录
  16. 五、CSS的引入方式
  17. ElasticSearch 极简入门 CRUD
  18. 基于javaweb的房产中介管理系统(java+ssm+html+bootstrap+layui+mysql)
  19. 行将消失的王者:回顾ATI
  20. 看浙商老板的27条创业思维,终于明白马云为什么能这么成功

热门文章

  1. 人工智能AI讲师NLP培训讲师叶梓:人工智能之最新NLP自然语言处理技术与实战-23
  2. LeetCode刷题|36有效的数独
  3. SQLServer集群故障节点DISCONNECTED
  4. 唐巧的iOS技术博客选摘
  5. 从零开发短视频电商 隐藏业务ID以及缩短业务链接
  6. android的app图标大全,安卓app图标
  7. tensorflow实现对图片的读取(tf.image.decode_jepg和tf.image.decode_png)
  8. 010 Editor修改指令
  9. ReSharper未按照预期路径安装后如何修改(Windows 找不到“C:\Program Files (x86)\JetBrains\Installations”。请检查拼写并重试)
  10. win32Day06:控件