精华内容
下载资源
问答
  • 1)简述编译程序与翻译程序、汇编程序的联系与区别。  编译程序是一种翻译程序(高级语言翻译成低级语言)//注:源语言通常为高级语言,目标语言通常为机器语言。  汇编程序也是一种语言翻译程序,它负责把汇编...

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

      编译程序是一种翻译程序(高级语言翻译成低级语言)//注:源语言通常为高级语言,目标语言通常为机器语言。

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

     

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

      词法分析:

      词法分析是编译过程的第一个阶段。主要任务是从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(一些场合下也称单词符号或符号)。

     

      语法分析:

      语法分析是编译过程的第二个阶段。语法分析的任务是在词法分析的基础上将单词序列分解成各类语法短语,如“程序”、“语句”、“表达式”等。这种语法短语也称为语法单位,可表示成语法树。

     

      语义分析:

      语义分析是审查源程序有无语义错误,为代码生成阶段收集类型信息。

     

      中间代码生成:

      在进行了上述的语法分析和语义分析阶段的工作之后,有的编译程序将原程序变成一种内部表示形式,这种内部表示形式叫作中间语言或中间代码。

     

      中间代码优化:

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

     

      目标代码生成:

      这玩意阶段的任务是把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。

      

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

     

      解释程序的输入包括源程序和源程序的初始数据(输入数据),它不生成目标代码,直接输出结果。编译程序和解释程序的存储组织也有很大不同。精油编译处理时,在源程序被编译的阶段,存储区中要为源程序(中间形式)和目标代码开辟空间,要存放编译用的各种表格,如符号表。在目标代码运行阶段,存储区中主要是目标代码和数据,编译所用的任何信息都不再需要了。

    4)了解新开源的华为方舟编译器,理解它的基本思想与采用的技术路线,谈谈它对安卓软件生态会有什么影响。

      华为方舟编译器作为一款全新的安卓应用编译器可以显著提高手机的运行速度,它不采用现有安卓编译器边解释边执行的模式,而是将这种动态编译改为静态编译,可以做到全程执行机器码,进而高效运行程序,大大缩短程序响应时间。据华为官方测试,方舟编译器提升手机系统操作流畅度高达 24%,系统响应性能提升 44%。尽管编译器更多承担的是“翻译”的功能,但是方舟编译器,更像一个编译运行系统。它主要有两方面优点:1、华为官方对于方舟编译器,有个很形象的比喻。如果说,安卓系统是和谐号,那么方舟编译器就是复兴号高铁。因为,它首次在Java领域将虚拟机干掉,Java/C/C++等混合代码,可以一次编译成机器码,直接在手机上运行。这让开发者们,彻底告别Java的JNI额外开销。2、方舟编译器拥有空间换性能,因此可直接将编译器的代码优化,搬到开发者环境。

     

     

    转载于:https://www.cnblogs.com/moxiaomo/p/11451945.html

    展开全文
  • 翻译程序有两种:一种是编译程序,它将高级语言源程序一次性全部翻译成目标程序,每次执行程序时,只要执行目标程序。另一种是解释程序,它的执行过程是翻译一句执行一句,并且不会生成目标程序。 编译程序是先完整...

    翻译程序是指把高级语言源程序翻译成机器语言源程序的软件。

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

    编译程序是先完整编译后运行的程序,如C、C++等;解释程序是一句一句翻译且边翻译边执行的程序,如JavaScript、Python等。附C语言编译链接过程:

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

    转载于:https://www.cnblogs.com/dtx123/p/11457296.html

    展开全文
  • 翻译程序有两种:一种是编译程序,它将高级语言源程序一次性全部翻译成目标程序,每次执行程序时,只要执行目标程序。另一种是解释程序,它的执行过程是翻译一句执行一句,并且不会生成目标程序。 编译程序是先完整...

    翻译程序是指把高级语言源程序翻译成机器语言源程序(目标代码)的软件。

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

    编译程序是先完整编译后运行的程序,如C、C++等;解释程序是一句一句翻译且边翻译边执行的程序,如JavaScript、Python等。附C语言编译链接过程:

     

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

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

    转载于:https://www.cnblogs.com/lwwwjl123/p/11451257.html

    展开全文
  • 编译程序工作过程

    千次阅读 2018-04-26 15:21:22
    问:编译程序绝大多数时间花在 _____ 上。...编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程...
    https://zhidao.baidu.com/question/6822600.html
    
    问:编译程序绝大多数时间花在 _____ 上。 
    答:表格管理
    
    编译程序也叫编译系统,是把用高级语言编写的面向过程的源程序翻译成目标程序的语言处理程序。
    编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。
    (1) 词法分析
    词法分析的任务是对由字符组成的单词进行处理,从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。执行词法分析的程序称为词法分析程序或扫描器。
    源程序中的单词符号经扫描器分析,一般产生二元式:单词种别;单词自身的值。单词种别通常用整数编码,如果一个种别只含一个单词符号,那么对这个单词符号,种别编码就完全代表它自身的值了。若一个种别含有许多个单词符号,那么,对于它的每个单词符号,除了给出种别编码以外,还应给出自身的值。
    词法分析器一般来说有两种方法构造:手工构造和自动生成。手工构造可使用状态图进行工作,自动生成使用确定的有限自动机来实现。
    (2) 语法分析
    编译程序语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一个语法单位。编译程序的语法规则可用上下文无关文法来刻画。
    语法分析的方法分为两种:自上而下分析法和自下而上分析法。自上而下就是从文法的开始符号出发,向下推导,推出句子。而自下而上分析法采用的是移进归约法,基本思想是:用一个寄存符号的先进后出栈,把输入符号一个一个地移进栈里,当栈顶形成某个产生式的一个候选式时,即把栈顶的这一部分归约成该产生式的左邻符号。
    (3) 中间代码生成
    中间代码是源程序的一种内部表示,或称中间语言。中间代码的作用是可使编译程序的结构在逻辑上更为简单明确,特别是可使目标代码的优化比较容易实现。中间代码即为中间语言程序,中间语言的复杂性介于源程序语言和机器语言之间。中间语言有多种形式,常见的有逆波兰记号、四元式、三元式和树。
    (4) 代码优化
    代码优化是指对程序进行多种等价变换,使得从变换后的程序出发,能生成更有效的目标代码。所谓等价,是指不改变程序的运行结果。所谓有效,主要指目标代码运行时间较短,以及占用的存储空间较小。这种变换称为优化。
    有两类优化:一类是对语法分析后的中间代码进行优化,它不依赖于具体的计算机;另一类是在生成目标代码时进行的,它在很大程度上依赖于具体的计算机。对于前一类优化,根据它所涉及的程序范围可分为局部优化、循环优化和全局优化三个不同的级别。
    (5) 目标代码生成
    目标代码生成是编译的最后一个阶段。目标代码生成器把语法分析后或优化后的中间代码变换成目标代码。目标代码有三种形式:
    ① 可以立即执行的机器语言代码,所有地址都重定位;
    ② 待装配的机器语言模块,当需要执行时,由连接装入程序把它们和某些运行程序连接起来,转换成能执行的机器语言代码;
    ③ 汇编语言代码,须经过汇编程序汇编后,成为可执行的机器语言代码。
    目标代码生成阶段应考虑直接影响到目标代码速度的三个问题:一是如何生成较短的目标代码;二是如何充分利用计算机中的寄存器,减少目标代码访问存储单元的次数;三是如何充分利用计算机指令系统的特点,以提高目标代码的质量。
    
    
    表格管理;
    编译的每个阶段所需要的信息多数从表格中读取,产生的中间结果都记录在相应的表格中,可以说整个编译过程就是造表、查表的过程。
    展开全文
  • 编译程序工作过程

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

    2019-05-21 22:49:15
    程序(即已经编写好的Java文件)由Java编译器编译为*.class文件。 编译命令为(这里用HelloWorld)javac HelloWorld.java。 然后在Java文件坐在目录会产生一个 .class文件。 以上是java文件的编译过程。 Java文件...
  • 源文件编写完毕后,通过java编译器处理,生成对应的编译文件,其后缀为.class,这是与不同平台进行交互的编译文件 编译文件生成之后,在JVM中根据不同的运行平台进行翻译完成相对应的指令。 ...
  • Android应用程序编译过程简述

    千次阅读 2015-11-07 18:30:02
    引言Android编译过程是指Java代码以及xml等资源文件转变为.apk文件的过程,本文将简单阐述这一过程,但不会深入,建立这一概念,为了更好的学习Android。此文参考了《Android编程权威指南》一书。编译流程先看一下...
  • 从概念上来讲,一个编译程序的整个工作过程是划分成阶段进行的,每个阶段将源程序的一种表示形式转换成另一种表示形式,各个阶段进行的操作在逻辑上是紧密连接在一起的,典型的划分方法主要分为6个阶段、如下: ...
  • 1)简述编译程序与翻译程序、汇编程序的联系与区别。  翻译程序指把高级语言源程序翻译成机器语言源程序(目标代码)的软件。翻译程序有两种:一种是编译程序,它将高级语言源程序一次性全部翻译成目标程序,每次...
  • gcc编译程序流程

    2018-09-17 17:13:46
    源文件(.c)——>预处理(.i)——>编译——>汇编(.s)——&...编译运行五部曲:一般就三步:对c文件直接编译后直接生成可执行文件后运行 gcc bcard.c gcc -o bcard bcard.c ./bcard )...
  • 编译简述

    2018-05-19 12:49:54
    编译一个每个人都写过的hello world程序,就经历了程序编译的全部过程gcc hello.c -o hello可以分为 预处理--->编译--->汇编--->链接1,预编译 处理#号开头的语句,如include文件、宏替换、...
  • gcc编译过程简述

    2019-06-25 09:32:47
    gcc编译过程简述 在linux系统上,从源文件到目标文件的转化是由编译器完成的。以hello.c程序编译为例,如下: dfcao@linux: gcc -o hello hello.c 在这里,gcc编译器读取源文件hello.c,并把它翻译成一个可执行...
  • c++编译过程简述

    2018-06-10 14:48:29
    这里只是简要的概述,概念性的理解。深入理解,望君研读《编译原理》。此处广告:当当有售!一、何为编译 编译就是把 .h和.cpp文件翻译成计算机能够执行的二进制文件(比如:windows中的一种,exe...二、编译过程 ...
  • 解释程序和编译程序的区别

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

    千次阅读 2013-07-02 00:18:29
    在不需对其底层的编译机制进行了解的情况下也可以进行程序开发,最近由于项目需要,重新拾起了Qt,想用Qt提供的qmake工具进行程序的开发,下面利用简单的Hello world程序了解qmake工具生成可执行文件的过程!...
  • 一、编译过程概述当我们执行Python代码的时候,在Python解释器用四个过程“拆解”我们的代码,最终被CPU执行返回给用户。首先当用户键入代码交给Python处理的时候会先进行词法分析,例如用户键入关键字或者当输入...
  • GNU CC(通常简称GCC)是GNU项目的编译器,它能够编译C、C++语言编写的程序。 gcc是Linux开发的基础,gcc能够支持多种不同的C语言版本,同时提供Linux、Unix、Windows下的编译版本。 使用gcc,程序员可以对编译过程...
  • 我们都知道,使用CC++之类的编译性语言编写的程序,是需要从源文件转换成计算机使用的机器语言,经过链接器链接之后形成了二进制可执行文件。运行该程序的时候,就可以二进制程序从硬盘载入到内存中并运行。但是对于...
  • 1、预处理(cpp) 调用预处理器cpp解释(#)...2、编译(ccl) 生成对应平台的汇编语言 gcc hello.i -o hello.s -S 3、汇编(as) 翻译成可重定位文件 gcc hello.s -o hello.o -c 4、链接(ld) 重定位,合
  • Java代码编译过程简述

    万次阅读 多人点赞 2017-02-05 11:31:14
    Javac编译器,能将一种语言规范转化成另外一种语言规范,通常编译器都是将便于人理解的语言规范转化成机器容易理解的语言规范,如C/C++或者汇编语言都是将源代码直接编译成目标机器码,这个目标机器代码是CPU直接...
  • 简述如何编译开发板的网卡驱动程序经过4天的努力,今天终于成功编译了一款基于ralink芯片组的无线网卡(Asus WL-107G)。在编译过程中遇到了很多问题,多亏论坛上的一些热心兄弟帮忙才得以顺利解决。现在把主要的...
  • c & c++ 编译过程简述

    2014-05-30 13:27:22
    C/C++编译过程主要分为4个过程  1) 编译预处理 2) 编译、优化阶段 3) 汇编过程 4) 链接程序
  • 1、用C++语言编写程序用高级语言编写的程序称为“源程序”(source program)C++的源程序是以.cpp作为后缀的(cpp是c plus plus 的缩写)2、对源程序进行编译为了使计算机能执行高级语言源程序,必须先用一种称为“编译器...
  • 编译原理过程简述及中间代码优化

    千次阅读 2017-09-28 17:21:23
    一、编译过程图示如下:词法分析作用:找出单词 。如int a=b+c; 结果为: int,a,=,b,+,c和; 语法分析作用:找出表达式,程序段,语句等。如int a=b=c;的语法分析结果为int a=b+c这条语句。 语义分析作用:查看...
  • 编译程序的生成

    千次阅读 2018-03-06 11:36:37
    编译程序的生成 码文不易,希望支持,谢谢->支持原创  用可运行的代码编制   也就使用汇编甚至机器码,纯手工敲。首先这是可行的,因为最初有人实现过,但是这确实太费力了,而且容易...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,508
精华内容 13,803
关键字:

简述编译程序的工作过程