解释执行:
由解释器根据输入的数据当场执行而不生成任何的目标程序.
解释执行程序是高级语言翻译程序的一种,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。这种工作方式非常适合于人通过终端设备与计算机会话,如在终端上打一条命令或语句,解释程序就立即将此语句解释成一条或几条指令并提交硬件立即执行且将执行结果反映到终端,从终端把命令打入后,就能立即得到计算结果。这的确是很方便的,很适合于一些小型机的计算问题。但解释程序执行速度很慢,例如源程序中出现循环,则解释程序也重复地解释并提交执行这一组语句,这就造成很大浪费。
编译执行:
先将源代码编译成目标语言(如:机器语言)之后通过连接程序连接到生成的目标程序进行执行。
这是一类很重要的语言处理程序,它把高级语言(如FORTRAN、COBOL、Pascal、C等)源程序作为输入,进行翻译转换,产生出机器语言的目标程序,然后再让计算机去执行这个目标程序,得到计算结果。
编译程序工作时,先分析,后综合,从而得到目标程序。所谓分析,是指词法分析和语法分析;所谓综合是指代码优化,存储分配和代码生成。为了完成这些分析综合任务,编译程序采用对源程序进行多次扫描的办法,每次扫描集中完成一项或几项任务,也有一项任务分散到几次扫描去完成的。下面举一个四遍扫描的例子:第一遍扫描做词法分析;第二遍扫描做语法分析;第三遍扫描做代码优化和存储分配;第四遍扫描做代码生成。
值得一提的是,大多数的编译程序直接产生机器语言的目标代码,形成可执行的目标文件,但也有的编译程序则先产生汇编语言一级的符号代码文件,然后再调用汇编程序进行翻译加工处理,最后产生可执行的机器语言目标文件。
实际应用中,对于需要经常使用的有大量计算的大型题目,采用招待速度较快的编译型的高级语言较好,虽然编译过程本身较为复杂,但一旦形成目标文件,以后可多次使用。相反,对于小型题目或计算简单不太费机时的题目,则多选用解释型的会话式高级语言,如BASIC,这样可以大大缩短编程及调试的时间。
分享到:
相关推荐
十进制basic是一种编程语言,它的解释执行和编译执行是其运行程序的两种主要方式。解释执行是指程序的源代码在运行时被逐行读取和执行,这种方式的编程语言被称为解释性语言。编译执行是指将程序源代码转换成机器...
编译执行和解释执行是计算机程序执行过程中的两种不同的技术,它们是计算机科学领域中至关重要的概念。 首先,编译器是一种特殊的程序,它能够将人类可读的源代码(即用特定编程语言编写的程序)转换成机器可以执行...
以下是针对《编译原理》的相关知识点的详细解释: 1. **词法分析**:编译器的第一步是将源代码分解成一个个称为“ token”的小单元,这被称为词法分析。词法分析器(也称为扫描器)识别关键字、标识符、常量、...
是有关于编译执行和解释执行的区别,适用于想了解这两种编译方式的区别的同学看一下
高级语言编程的程序有三种执行方式:一种是编译执行,源程序先通过编译器(负责将源程序翻译成目标机器指令)翻译成机器指令,通过编译-->链接-->目标可执行文件,然后执行;一种是解释执行,是使用解释器会将我们的...
这种执行方式结合了解释执行的灵活性和编译执行的高效性。 文章中所提到的HotSpot JVM是Oracle公司JDK和JRE中包含的Java虚拟机实现,特别在Intel x86 32位CPU架构下得到广泛应用。HotSpot JVM通过这种方式实现了...
(1)解析:.class文件经过JVM内嵌的解析器解析执行 (2)编译:存在JIT编译器(Just In Time Compile 即时编译器)把经常运行的代码
解释程序与编译程序类似,但它们不生成目标代码,而是直接解释执行源代码,每读取一行就执行一行,没有预先生成的机器码。自编译是指使用某高级语言编写自己的编译器,而交叉编译则是在一种机器上编译代码,使其能在...
标题中的“解释语言与编译语言的区别”是一个重要的计算机科学概念,主要涉及到程序设计语言的两种执行模式。这里,我们将详细探讨这两种语言类型的核心特点、工作原理以及它们在实际应用中的差异。 首先,解释语言...
### JAVA文件编译执行与虚拟机(JVM)介绍 #### 关键知识点概述: 1. **JAVA文件的编译与执行**:JAVA程序首先通过编译器转换为中间代码(字节码),然后由JVM解释执行。 2. **JVM的角色与功能**:JVM作为JAVA程序...
Java内存动态编译执行是Java程序运行时的一个关键特性,它涉及到JVM(Java虚拟机)的即时编译器(JIT,Just-In-Time Compiler)和元空间(Metaspace)等核心概念。在Java的世界里,代码首先会被解释器逐行解释执行,...
这是编译原理的源代码,涉及了编译原理的各个过程:词法分析,LL1语法分析,语义分析,中间代码生成,中间代码优化(常表达式优化,公共表达式优化,循环不变式优化),中间代码生成目标代码,目标代码的解释执行,...
编译的主要目的是为了提高程序的加载速度,因为字节码可以直接被解释器执行,避免了源代码解析的开销。 反编译是将已编译的Lua字节码文件转换回源代码的过程。这通常用于分析或调试已经编译的代码,或者在源代码...
国科大编译作业:基于Clang的C语言解释执行器项目资源
预编译后的代码可以更快地加载和执行,因为它避免了运行时的解释过程。 反编译是将已编译的字节码还原为源代码的过程。虽然Lua的字节码是可以理解的,但直接从字节码恢复到原始源代码并不总是可能的,因为编译过程...
Java源代码先被编译成字节码,这是一种平台无关的中间语言,然后由Java虚拟机(JVM)解释执行。这种方式使得Java具有跨平台的能力,实现了“写一次,到处运行”的理念。Java平台包括Java虚拟机和Java应用程序接口...
不过,解释执行的效率相对较低,为了提升性能,现代JVM如HotSpot采用了即时编译(JIT,Just-In-Time Compilation)技术,将频繁执行的热点代码编译成本地机器码,实现更高的执行速度。 内存管理是JVM的另一大核心...
大三编译原理作业,SQL的解释器,可以解释执行SQL命令,创建小型数据库#自述文件#文件树===================================================.isql |--isql.l flex文件,用于isql的词法分析 |--isql.y bison文件...
解释器是编译原理的一个重要应用,它不同于传统的编译器,不需要先将源代码编译成目标代码,而是直接执行源代码。 在这个“编译原理课程解释器构造Java源码”中,我们可以推测这是一个基于Java编程语言实现的解释器...