精华内容
下载资源
问答
  • 解释程序和编译程序的区别

    万次阅读 2019-05-09 15:13:56
    1、什么是编译程序和解释程序 编译程序和解释程序是程序执行的两种不同执行方式。 2、编译程序和解释程序的区别 编译程序编译程序的功能是把用高级语言书写的源程序翻译成与之等价的目标程序。编译过程划分成...

    1、什么是编译程序和解释程序

    编译程序和解释程序是程序执行的两种不同执行方式。

    2、编译程序和解释程序的区别

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

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

    PS:编译程序不参与用户程序的运行控制,而解释程序则参与

    展开全文
  • 1)简述编译程序与翻译程序、汇编程序的联系与区别。  翻译程序指把高级语言源程序翻译成机器语言源程序(目标代码)的软件。翻译程序有两种:一种是编译程序,它将高级语言源程序一次性全部翻译成目标程序,每次...

    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

    展开全文
  • 编译程序和解释程序

    千次阅读 2018-05-28 14:15:28
    编译程序是一个语言处理程序,它可以把高级语言程序给翻译成某个机器的汇编语言程序或者是二进制代码程序,这个阶段叫做编译阶段,需要注意的是编译和运行是两个分开的阶段,也就是说我程序必须要全部翻译完毕之后,...

    编译程序是一个语言处理程序,它可以把高级语言程序给翻译成某个机器的汇编语言程序或者是二进制代码程序,这个阶段叫做编译阶段,需要注意的是编译和运行是两个分开的阶段,也就是说我程序必须要全部翻译完毕之后,才能运行。但是在一个交互环境当中,并不需要将两个阶段给分开,也就是我们在使用解释程序的时候,它不需要在运行前就去把源程序翻译成目标代码,也可以在某台机器上运行程序,并生成结果

    解释程序会去接受某个语言的程序并且立即去执行这个源程序,它的工作模式就是一个个的获取、分析并且去执行源程序的语句,一旦第一个语句分析结束之后,源程序就会开始运行并且去生成结果,它比较适合我们想以交互方式来工作的情况,也就是说我们希望在获取下一个语句之前了解每个语句的执行结果,允许执行时修改程序

    解释程序其实有很多比如说BASIC语言解释程序、LISP语言解释程序、UNIX命令语言(shell)解释程序、数据库查询语言SQL解释程序以及java语言环境中的BYTECODE解释程序

    解释程序的输入包括源程序和源程序的初始数据(输入数据),它不会生成目标代码,直接输出结果

    编译程序和解释程序的存储组织有很大的不同,其中如果是编译程序处理时,在源程序被编译的阶段,存储区中要为源程序(中间形式)和目标代码开辟空间,要存放编译用的各种表格比如说符号表,在目标代码运行阶段,存储区中主要是目标代码和数据,编译所用的任何信息都不需要了

    这里写图片描述

    解释程序一般是把源程序一条语句一条语句的进行语法分析,转换为一种内部表示形式,存放在源程序区,就比如说BASIC解释程序就会将LET和GOTO这样的关键字表示为一个字节的操作码,标识符用其在符号表的入口位置表示。由于解释程序是允许在执行用户程序的时候修改用户程序的,所以这就要求在解释程序工作的整个过程中,源程序和符号表等内容始终存放在存储区内,并且存放的格式是要设计得易于修改和使用

    解释程序的存储区内容如下所示
    这里写图片描述

    程序的解释是非常慢的,有的时候一个高级语言源程序的解释会比运行等价的机器代码程序慢100倍,所以如果我们对程序的运行速度要求很高的话,那么就不能采用解释执行的方式,还有就是解释程序的空间开销也是很大的

    编译程序和解释程序是两类重要的高级语言处理程序,有些语言比如说BASIC、LISP、Pascal等既有编译程序,也有解释程序,java的语言处理环节中也是既有编译程序,也有解释程序,在java环境中java虚拟机可以对字节码进行解释运行,当然也可以采用即时编译程序(JIT),将字节码编译成本机机器代码然后执行,加快了效率

    类加载器会将.class文件经过一些处理之后变成字节码在加载到内存中,也就是说会加载对应的类到jvm,关于字节码校验器,当类加载器将新加载的java平台类的字节码传递到虚拟机时,这些字节码首先要接受校验器的校验。校验器负责检查那些无法执行的明显有破坏性的操作。除了系统类之外,其他类都要被校验

    这里写图片描述

    展开全文
  • 编译原理-编译程序基础知识

    千次阅读 2018-03-18 18:15:33
    本文主要讲的什么是编译程序,编译的各个阶段 什么是编译程序 源语言是像FORTRAN、Pascal或C那样的高级语言,目标语言是像汇编语言或机器语言那样的低级语言,这种翻译程序就叫做编译程序 翻译程序:就是把一种...

    本文主要讲的什么是编译程序,编译的各个阶段

    什么是编译程序

    源语言是像FORTRAN、Pascal或C那样的高级语言,目标语言是像汇编语言或机器语言那样的低级语言,这种翻译程序就叫做编译程序

    翻译程序:就是把一种语言(称为源语言)书写的程序翻译成另外一种语言(称为目标语言)的等价程序。

    一个编译程序的输入可能要由一个或多个预处理程序来产生

    预处理:一个源程序可能分成几个模块放在不同的文件里,将这些源程序汇集在一起的任务,由一个叫预处理程序的程序来完成,有些预处理程序也负责宏展开、文件合并等任务

    编译的各个阶段

    1、词法分析:编译过程的第一阶段

    任务:从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词。

    2、语法分析:编译过程的第二阶段

    任务:在词法分析的基础上将单词序列分解成各类语法短语,如“程序、语句、表达式”等;这种语法短语也称为短语单位,可表示成语法树。

    例如: id1 := id2 + id3 * 10;
    这里写图片描述

    这里写图片描述

    3、语义分析:编译过程的第三个过程,审查源程序有无语义错误,为代码生成阶段收集类型信息。

    4、中间代码生成(该过程不是必须的)

    所谓中间代码 是一种结构简单、含义明确的记号系统,这种记号系统可以设计成多种多样的形式。
    设计的原则:一是容易生成; 二是:容易将他翻译成目标代码。

    5、代码优化 (该过程不是必须的)

    任务:对前一阶段产生的中间代码进行变换或进行改造,目的是使生成的目标代码更为高效,即节省时间和省空间。

    6、目标代码生成(编译过程的最后阶段)

    任务:把中间代码变换成特定的机器上的绝对指令代码或可重定位的指令代码活汇编指令代码。它的工作与硬件系统结构和指令含义有关。

    一个完整的编译程序还必须包括表格管理和出错处理程序。

    展开全文
  • Linux编译程序

    千次阅读 2018-09-21 16:15:32
    编译程序 make - 维护程序的工具 构建程序 大多数程序通过一个简单的,两个命令的序列构建: ./configure make 这个 configure 程序是一个 shell 脚本,由源码树提供.它的工作是分析程序构建环境。大多数源码会...
  • 编译程序基本原理

    千次阅读 2018-06-25 21:40:01
    编译程序和解释程序 人们利用高级语言与计算机进行交互, 但计算机仍然只能理解和执行由 0, 1序列构成的机器语言, 因此高级程序设计语言需要翻译, 担负这一任务的程序称为"语言处理程序", 由于应用的不同, 语言之间...
  • 编译程序完成从源程序到目标程序的翻译工作,是一个复杂的整体的过程。从概念上来讲,一个编译程序的整个工作过程是划分成阶段进行的,每个阶段将源程序的一种表示形式转换成另一种表示形式,各个阶段进行的操作在...
  • 编译原理:编译程序的结构

    千次阅读 2018-05-18 12:00:25
    此外,一个完整的编译程序还必须包括表格管理程序和出错处理程序。如下图: 表格管理和出错处理与上一篇讲的6个阶段都有联系,编译过程中源程序的各种信息被保留在种种不同的表格里,编译各阶段的工作都涉及构造...
  • 编译原理:什么是编译程序

    千次阅读 2018-04-28 10:25:08
    一个编译程序就是一个语言翻译程序。就是把一种语言书写的程序翻译成另一种语言(目标语言)的等价程序。 重要性: 一个编译程序的重要性体现在它使得多数计算机用户不必考虑与机器有关的繁琐细节,使程序员和...
  • 编译程序工作过程

    千次阅读 2018-04-26 15:21:22
    问:编译程序绝大多数时间花在 _____ 上。 答:表格管理 编译程序也叫编译系统,是把用高级语言编写的面向过程的源程序翻译成目标程序的语言处理程序。编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段...
  • 源程序、目标程序、汇编程序、编译程序、解释程序之间的关系 翻译程序是这样一种程序:它能把用甲种语言编写的程序翻译成在功能上与之等价的用乙种语言编写的程序。我们把甲种语言称为源语言,把乙种语言称为目标...
  • vscode调用keil-MDK编译程序

    千次阅读 多人点赞 2020-05-28 11:54:51
    vscode的确很强大,很多人为它贡献插件,之前看过很多使用Vscode进行STM32开发的文章配置都好麻烦复杂,像我这种怕麻烦的就不想搞,就只能用vscode编辑程序,再切换到keil编译程序,比较麻烦些。然而这个痛点已经被...
  • 编译程序总体结构

    千次阅读 2019-10-25 23:53:30
    编译程序总体结构 文章目录编译程序总体结构1、词法分析2、语法分析3、语义分析4、中间代码生成4、中间代码生成5、代码优化与机器无关的优化与机器有关的优化6、目标代码生成7、表格管理8、错误处理9、模块分类 1、...
  • 由语言程序(编译程序,汇编程序,解释程序)处理成与之等价的机器码构成的,计算机能够直接运行的程序,叫做目标程序。 翻译程序  把一种程序转换成成另一种程序的程序。 编译程序  把用高级程序
  • 编译程序和解释程序有什么区别?

    千次阅读 2020-05-26 22:52:19
    1. 编译程序和解释程序的区别: 编译型是使用编译器编译后生成计算机硬件可直接执行的指令,解释型是在运行时才由解释器逐语句去执行。 编译型代表:C&C++,C#,Java,解释型代表:html,javascript。区别有很多...
  • 编译程序原理VS解释程序原理

    千次阅读 热门讨论 2015-10-29 20:22:06
    引言  在备战软考的过程中在复习程序设计语言的时候遇到这么一个考点——解释和编译的原理,并且在做真题的过程中... 一、编译程序原理  首先让大家看一张来自百度百科上面的编译工作阶段的示意图    这张图看
  • 编译方式是指利用事先编好的一个称为编译程序的机器语言程序,作为系统软件存放在计算机内,当用户将高级语言编写的源程序输入计算机后,编译程序便把源程序整个地翻译成用机器语言表示的与之等价的目标程序,然后...
  • 什么是编译程序

    千次阅读 2017-05-19 16:04:45
    编译程序也叫编译系统,是把用高级语言编写的面向过程的源程序翻译成目标程序的语言处理程序。 编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;中间代码生成;代码优化;目标代码...
  • 能将高级语言编写的源程序转换为目标程序的是什么? A)链接程序 B)解释程序 C)编译程序 D)编辑程序 ...所以能将高级语言编写的源程序转换为目标程序的是相应的高级语言编译...编译程序属于采用生成性实现途径实现...
  • 编译程序是一种翻译程序,它把高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序。 解释程序也是一种翻译程序,它将源程序作为输入并执行它,边解释边执行。它与编译程序的主要区别在于在解释程序执行...
  • 编译程序和解释程序的本质

    千次阅读 2014-11-17 14:08:55
     编译方式是指利用事先编好的一个称为编译程序的机器语言程序,作为系统软件存放在计算机内,当用户将高级语言编写的源程序输入计算机后,编译程序便把源程序整个地翻译成用机器语言表示的与之等价的目标程序,然后...
  • 编译程序的生成

    千次阅读 2018-03-06 11:36:37
    编译程序的生成 码文不易,希望支持,谢谢->支持原创  用可运行的代码编制   也就使用汇编甚至机器码,纯手工敲。首先这是可行的,因为最初有人实现过,但是这确实太费力了,而且容易...
  • 1、解释程序解释程序是一个一个的获取、分析并执行源程序语句,一旦一个语句分析完成,解释程序便开始运行并生成结果。语言程序的调试就可以用解释器来实现2、解释程序的缺点1、程序...编译程序是将一种语言翻译为另一
  • 使用指定glibc编译程序

    万次阅读 2015-08-22 14:33:00
    使用指定glibc版本来编译程序
  • 编译程序分析源程序的阶段依次

    千次阅读 2016-10-30 21:08:56
    编译程序分析源程序的阶段依次是( ) A.词法分析、语法分析、语义分析 B.语法分析、词法分析、语义分析 C.语义分析、语法分析、词法分析 D.语义分析、词法分析、语法分析 试题答案:A
  • 如果编译器在编译cpp文件,那么 _cplusplus就会被定义,如果是一个C文件被编译,那么 _STDC_就会被定义,_STDC_是预定义宏,当它被定义后,编译器将按照ANSIC标准来编译C语言程序。 所以,可以采用下列程序示例判断...
  • 高级编程语言(high level programming language):如Java、C#等  低级编程语言(low lever ... 编译程序(compiler)  机器语言(machine language 由0和1组成的比特流)  汇编程序是把汇编指令转换为可执
  • 一张图解释典型编译程序结构框图

    千次阅读 2017-10-04 11:10:14
    编译程序结构框图
  • 编译程序的工作过程

    千次阅读 2017-04-16 22:17:12
    编译程序的工作过程一般划分为五个阶段:词法分析、语法分析、语义分析与中间代码产生、优化、目标代码生成。 词法分析:也就是从左到右一个一个的读入源程序,识别一个单词或符号,并进行归类。 语法分析:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 273,619
精华内容 109,447
关键字:

编译程序