`
weigang.gao
  • 浏览: 488063 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

编译执行和解释执行的区别

    博客分类:
  • java
 
阅读更多

A、解释程序  

所谓解释程序是高级语言翻译程序的一种,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。



就像外语翻译中的“口译”一样,说一句翻一句,不产生全文的翻译文本。这种工作方式非常适合于人通过终端设备与计算机会话,如在终端上打一条



命令或语句,解释程序就立即将此语句解释成一条或几条指令并提交硬件立即执行且将执行结果反映到终端,从终端把命令打入后,就能立即得到计算结果。



这的确是很方便的,很适合于一些小型机的计算问题。但解释程序执行速度很慢,例如源程序中出现循环,则解释程序也重复地解释并提交执行这一组语句,这就造成很大浪费。



B、编译程序

这是一类很重要的语言处理程序,它把高级语言(如FORTRAN、COBOL、Pascal、C等)源程序作为输入,进行翻译转换,产生出机器语言的目标程序,然后再让计算机去执行这个目标程序,得到计算结果。

编译程序工作时,先分析,后综合,从而得到目标程序。所谓分析,是指词法分析和语法分析;所谓综合是指代码优化,存储分配和代码生成。为了完成这些分析综合任务,



编译程序采用对源程序进行多次扫描的办法,每次扫描集中完成一项或几项任务,也有一项任务分散到几次扫描去完成的。下面举一个四遍扫描的例子:第一遍扫描做词法分析;



第二遍扫描做语法分析;第三遍扫描做代码优化和存储分配;第四遍扫描做代码生成。

值得一提的是,大多数的编译程序直接产生机器语言的目标代码,形成可执行的目标文件,但也有的编译程序则先产生汇编语言一级的符号代码文件,



然后再调用汇编程序进行翻译加工处理,最后产生可执行的机器语言目标文件。

在实际应用中,对于需要经常使用的有大量计算的大型题目,采用招待速度较快的编译型的高级语言较好,虽然编译过程本身较为复杂,但一旦形成目标文件,



以后可多次使用。相反,对于小型题目或计算简单不太费机时的题目,则多选用解释型的会话式高级语言,如BASIC,这样可以大大缩短编程及调试的时间

分享到:
评论

相关推荐

    解释执行和编译执行的区别?

    解释执行和编译执行的主要区别在于: 1. 执行效率:编译执行通常比解释执行效率更高,因为编译器生成了可直接由机器运行的目标程序,而解释执行则需要每次都对代码进行实时翻译。 2. 调试难度:解释执行更容易进行...

    解释语言与编译语言的区别

    标题中的“解释语言与编译语言的区别”是一个重要的计算机科学概念,主要涉及到程序设计语言的两种执行模式。这里,我们将详细探讨这两种语言类型的核心特点、工作原理以及它们在实际应用中的差异。 首先,解释语言...

    编译性语言、解释性语言和脚本语言

    Java源代码先被编译成字节码,这是一种平台无关的中间语言,然后由Java虚拟机(JVM)解释执行。这种方式使得Java具有跨平台的能力,实现了“写一次,到处运行”的理念。Java平台包括Java虚拟机和Java应用程序接口...

    Java编译和解释执行对比及原理解析

    Java编译和解释执行对比及原理解析 Java编译和解释执行对比及原理解析主要介绍了Java编译和解释执行对比及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以...

    JAVA文件编译执行与虚拟机(JVM)介绍

    ### JAVA文件编译执行与虚拟机(JVM)介绍 #### 关键知识点概述: 1. **JAVA文件的编译与执行**:JAVA程序首先通过编译器转换为中间代码(字节码),然后由JVM解释执行。 2. **JVM的角色与功能**:JVM作为JAVA程序...

    java内存动态编译执行

    Java内存动态编译执行是Java程序运行时的一个关键特性,它涉及到JVM(Java虚拟机)的即时编译器(JIT,Just-In-Time Compiler)和元空间(Metaspace)等核心概念。在Java的世界里,代码首先会被解释器逐行解释执行,...

    编译原理——常见名词解释.docx

    解释程序与编译程序类似,但它们不生成目标代码,而是直接解释执行源代码,每读取一行就执行一行,没有预先生成的机器码。自编译是指使用某高级语言编写自己的编译器,而交叉编译则是在一种机器上编译代码,使其能在...

    编译原理课程解释器构造Java源码

    解释器是编译原理的一个重要应用,它不同于传统的编译器,不需要先将源代码编译成目标代码,而是直接执行源代码。 在这个“编译原理课程解释器构造Java源码”中,我们可以推测这是一个基于Java编程语言实现的解释器...

    编译和解释的区别是什么

    解释执行的过程较慢,因为它必须边解释边执行,这增加了运行时的开销。但是解释器的优势在于良好的动态特性和可移植性,因为可以在不同的系统上不需改动程序代码即可运行。 低级语言和高级语言在编译和解释中的表现...

    Hpsyche#note#1.Java解释执行编译执行1

    (1)解析:.class文件经过JVM内嵌的解析器解析执行 (2)编译:存在JIT编译器(Just In Time Compile 即时编译器)把经常运行的代码

    Java虚拟机解释执行机制研究.pdf

    这种执行方式结合了解释执行的灵活性和编译执行的高效性。 文章中所提到的HotSpot JVM是Oracle公司JDK和JRE中包含的Java虚拟机实现,特别在Intel x86 32位CPU架构下得到广泛应用。HotSpot JVM通过这种方式实现了...

    编译原理实验PLMy语言的编译和解释程序及实验报告

    实验标题是“编译原理实验PLMy语言的编译和解释程序及实验报告”,这表明我们将通过实现一个简单的PLMy语言的编译器和解释器来深入理解这一主题。 编译器是将源代码(高级语言)转换为目标代码(机器语言)的程序,...

    编译原理课程设计CMM语言解释器

    **编译原理课程设计——CMM语言解释器** 在计算机科学领域,编译原理是研究如何将高级程序设计语言转换为机器可理解的低级语言的一门学科。本项目是基于CMM语言的一个解释器,它由Java语言实现,旨在帮助学生理解和...

    vb.net自编译代码执行

    vb.net执行代码段 自解释自编译

    解释器与编译器的区别

    C++ 程序在编译后生成 `.exe` 文件,而 Java 程序通过 Java 编译器(Javac)生成 `.class` 字节码文件,然后由Java虚拟机(JVM)解释执行。 **源码与工具**:源码是程序员用高级语言编写的程序文本,它是可读的、...

    编译原理—编译概论——翻译程序与解释程序

    翻译程序将源程序翻译成目标程序,而解释程序则将源程序解释执行。两者的主要区别在于翻译程序在执行过程中产生目标程序,而解释程序不产生目标程序。解释程序的优点是交互方便,节省空间,但缺点是效率低。 编译...

    目标代码的解释执行.rar_中间代码 生成_中间代码生成_编译 中间_编译原理

    涉及了编译原理的各个过程:词法分析,LL1语法分析,语义分析,中间代码生成,中间代码优化(常表达式优化,公共表达式优化,循环不变式优化),中间代码生成目标代码,目标代码的解释执行,详细地阐述了一个编译器...

    程序编译与解释.pdf

    ### 程序编译与解释的关键知识点 #### 一、程序翻译的必要性 - **背景介绍**:计算机只能直接识别和执行机器语言(即由0和1组成的...- Java语言通过编译成字节码再解释执行的方式,实现了良好的跨平台兼容性和高效性。

Global site tag (gtag.js) - Google Analytics