Ⅰ 编译程序的工作过程一般可以划分为哪5个基本阶段,还自始至终伴随进行哪两项工作
1、编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;中间代码生成;代码优化;目标代码生成。
2、编译程序的工作过程一般自始至终伴随进行信息表管理和出错处理两项工作。
主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。
(1)编译型是否产生目标程序扩展阅读:
解释程序是一种语言处理程序,在词法、语法和语义分析方面与编译程序的工作原理基本相同,但在运行用户程序时,它直接执行源程序或源程序的内部形式(中间代码)。因此,解释程序并不产生目标程序,这是它和编译程序的主要区别。解释程序的工作过程如下:
1、由总控程序完成初始化工作。
2、依次从源程序中取出一条语句进行语法检查,如有错,输出错误信息;如果通过了语法检查,则根据语句翻泽成相应的指令并执行它。
3、检查源程序是否已经全部解释执行完毕,如果未完成则继续解释并执行下一条语句,直到全部语句都处理完毕。
Ⅱ 解释程序和编译程序那个能产生目标程序
都可以产生目标程序,不同的是,编译程序是把高级语言编写的源程序翻译成机器语言的目标程序.解释程序,是把某种程序设计语言编写的源程序翻译成机器语言的目标程序,且翻译一条,执行一条的原则
Ⅲ 汇编程序和编译程序哪个产生目标程序
各种软件,是不同的。
有的汇编程序,直接就生成可执行文件,根本就没有目标程序。
Ⅳ 用高级语言编写的源程序,经编译后产生的是
目标程序。
目标程序,又称为“目的程序”,为源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以.obj作扩展名----由语言处理程序(汇编程序,编译程序,解释程序)将源程序处理(汇编,编译,解释)成与之等价的由机器码构成的,计算机能够直接运行的程序,该程序叫目标程序。
目标代码尽管已经是机器指令,但是还不能运行,因为目标程序还没有解决函数调用问题,需要将各个目标程序与库函数连接,才能形成完整的可执行程序。
(4)编译型是否产生目标程序扩展阅读
计算机并不能直接地接受和执行用高级语言编写的源程序,源程序在输入计算机时,通过"翻译程序"翻译成机器语言形式的目标程序,计算机才能识别和执行。这种"翻译"通常有两种方式,即编译方式和解释方式。
编译方式是指利用事先编好的一个称为编译程序的机器语言程序,作为系统软件存放在计算机内,当用户将高级语言编写的源程序输入计算机后,编译程序便把源程序整个地翻译成用机器语言表示的与之等价的目标程序。
然后计算机再执行该目标程序,以完成源程序要处理的运算并取得结果。解释方式是指源程序进入计算机后,解释程序边扫描边解释,逐句输入逐句翻译。
计算机一句句执行,并不产生目标程序。如PASCAL、FORTRAN、COBOL等高级语言执行编译方式;BASIC语言则以执行解释方式为主;而PASCAL、C语言是能书写编译程序的高级程序设计语言。
Ⅳ 编译程序和解释程序的区别在于A.是否产生目标
编译程序和解释程序的区别在于
A.是否产生目标程序
B.是否用于将高级语言源程序转换成机器语言
C.是否属于语言处理程序
D.是否有可视化的开发环境
正确答案:A
Ⅵ 编译过程中,源程序为什么要通过中间代码生成目标程序
源程序是指程序员编写的代码,可以被编译程序编译为目标程序。
如果是c++,那么后缀为.cpp
目标程序是编译程序将源程序编译后的结果,如果是c++,那么后缀是.o
编译程序一般是编译器公司(比如微软
intel他们都生产编译器)做的,它将源代码转化为机器可识别的文件,经过链接,生成可执行程序。
解释程序即解释器,它不需要经过编译阶段即可根据用户源程序执行。
程序语言分编译类和解释类语言。
Ⅶ 程序语言中编译,解释,编辑的区别
首先说编辑,这个一般指的是编辑高级语言代码,也就人能够看懂的计算机语言,如JAVA,C,C#等等,总之就是人通过学习语法规则就能够理解其逻辑过程的语言都算高级语言。编辑就是指的编写这样的代码。
我们知道,计算机是无法读懂高级语言的,那么就需要编译器把高级语言转换成计算机可以运行的机器语言,就是一般的0101010001的二进制代码。
高级语言翻译为计算机能读懂的机器语言的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。程序执行之前,需要一个专门的编译过程(跟计算机语言的种类有关,比如C就是这样),把程序编译成为机器语言的文件,比如WINDIOWS系统下的exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件)。
解释则不同,这类语言写的程序不需要编译(比如php),省了这道工序,语言在运行程序的时候才翻译,比如解释性php语言,专门有一个解释器能够直接执行php程序,每个语句都是执行的时候才翻译,然后给计算机执行。
那么为什么要分为了两种呢,因为编译型语言一经编辑,其对系统的要求就定死了,比如平台,硬件类型等,已经编译为机器代码了,就只能在同类机器上运行。同时因为其只编译一次,执行时不需要编译,所以一般效率高。
解释型的就不同,由于语言是在执行时被翻译的,所以解释器能够根据当前的系统平台,硬件情况实时生成机器语言用于运行,所以,其从一个系统移植到另一个系统就很容易。但是一般的,因为他每次运行都要翻译,所以一般效率较低。
关于他们的效率不一定的,有一些的解释型的语言运行效率不比编译型的低,因为他实时的对语言进行优化,提升了运行效率,主要看解释器的性能有多强。
还有一点就是编译型语言适合大量的复制进行商业活动,因为一旦编译成机器语言,人就看不懂了。所以代码泄露的可能很低,而解释型的,复制时需要直接复制源代码(既高级语言)这样获得的人都能查看其源代码并通过编辑器修改,这样是不利于版权,技术的保护的。
大致上就是这样。
Ⅷ 编译程序和解释程序都是什么意思
1、编译程序是把用高级程序设计语言或计算机汇编语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序,属于采用生成性实现途径实现的翻译程序。编译程序以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出;编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。
2、解释程序是高级语言翻译程序的一种,它将源语言书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。就像外语翻译中的“口译”一样,说一句翻一句,不产生全文的翻译文本。
(8)编译型是否产生目标程序扩展阅读:
编译程序的实现算法较为复杂。这是因为它所翻译的语句与目标语言的指令不是一一对应关系,而是一多对应关系;同时也因为它要处理递归调用、动态存储分配、多种数据类型,以及语句间的紧密依赖关系。但是,由于高级程序设计语言书写的程序具有易读、易移植和表达能力强等特点,编译程序广泛地用于翻译规模较大、复杂性较高、且需要高效运行的高级语言书写的源程序。
Ⅸ 编译是将整个源程序代码文件一次性翻译成目标程序代码,最终生成可执行文件,对么
正确。
编译(compilation , compile)
1、利用编译程序从源语言编写的源程序产生目标程序的过程。
2、用编译程序产生目标程序的动作。 编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。
编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。
Ⅹ 编译程序是否能够产生目标程序
是的。虽然常用的集成开发环境把编译过程及链接过程连在一起,但从严格意义上讲,我们通常说的编译(静态编译)是把源程序转换成语义等价的目标程序,然后由链接器(linker)把一个(或多个)目标程序与程序库链接成可执行文件