`
red_xie
  • 浏览: 27160 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

解释和编译

阅读更多
计算机并不能直接地接受和执行用高级语言编写的源程序,源程序在输入计算机时,通过"翻译程序"翻译成机器语言形式的目标程序,计算机才能识别和执行。这种"翻译"通常有两种方式,即编译方式和解释方式。编译方式是指利用事先编好的一个称为编译程序的机器语言程序,作为系统软件存放在计算机内,当用户将高级语言编写的源程序输入计算机后,编译程序便把源程序整个地翻译成用机器语言表示的与之等价的目标程序,然后计算机再执行该目标程序,以完成源程序要处理的运算并取得结果。解释方式是指源程序进入计算机后,解释程序边扫描边解释,逐句输入逐句翻译,计算机一句句执行,并不产生目标程序。如PASCAL、 FORTRAN、COBOL等高级语言执行编译方式;BASIC语言则以执行解释方式为主;而PASCAL、C语言是能书写编译程序的高级程序设计语言。


编译程序、解释程序、汇编程序是3种语言处理程序。其区别主要为:汇编程序(为低级服务)是将汇编语言书写的源程序翻译成由机器指令和其他信息组成的目标程序。解释程序(为高级服务)直接执行源程序或源程序的内部形式,一般是读一句源程序,翻译一句,执行一句,不产生目标代码,如BASIC解释程序。编译程序(为高级服务)是将高级语言书写的源程序翻译成与之等价的低级语言的目标程序。编译程序与解释程序最大的区别之一在于前者生成目标代码,而后者不生成;此外,前者产生的目标代码的执行速度比解释程序的执行速度要快;后者人机交互好,适于初学者使用。用COBOL、FORTRAN等语言编写的程序考虑到执行速度一般都是编译执行。

解释程序

所谓解释程序是高级语言翻译程序的一种,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。就像外语翻译中的“口译”一样,说一句翻一句,不产生全文的翻译文本。这种工作方式非常适合于人通过终端设备与计算机会话,如在终端上打一条命令或语句,解释程序就立即将此语句解释成一条或几条指令并提交硬件立即执行且将执行结果反映到终端,从终端把命令打入后,就能立即得到计算结果。这的确是很方便的,很适合于一些小型机的计算问题。但解释程序执行速度很慢,例如源程序中出现循环,则解释程序也重复地解释并提交执行这一组语句,这就造成很大浪费。

编译程序

这是一类很重要的语言处理程序,它把高级语言(如FORTRAN、COBOL、Pascal、C等)源程序作为输入,进行翻译转换,产生出机器语言的目标程序,然后再让计算机去执行这个目标程序,得到计算结果。编译程序工作时,先分析,后综合,从而得到目标程序。所谓分析,是指词法分析和语法分析;所谓综合是指代码优化,存储分配和代码生成。为了完成这些分析综合任务,编译程序采用对源程序进行多次扫描的办法,每次扫描集中完成一项或几项任务,也有一项任务分散到几次扫描去完成的。下面举一个四遍扫描的例子:第一遍扫描做词法分析;第二遍扫描做语法分析;第三遍扫描做代码优化和存储分配;第四遍扫描做代码生成。

值得一提的是,大多数的编译程序直接产生机器语言的目标代码,形成可执行的目标文件,但也有的编译程序则先产生汇编语言一级的符号代码文件,然后再调用汇编程序进行翻译加工处理,最后产生可执行的机器语言目标文件。

在实际应用中,对于需要经常使用的有大量计算的大型题目,采用招待速度较快的编译型的高级语言较好,虽然编译过程本身较为复杂,但一旦形成目标文件,以后可多次使用。相反,对于小型题目或计算简单不太费机时的题目,则多选用解释型的会话式高级语言,如BASIC,这样可以大大缩短编程及调试的时间。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/superdont/archive/2007/05/23/1622136.aspx
分享到:
评论

相关推荐

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

    以Java为例,Java是一种特殊的语言,它采用编译和解释相结合的方式。Java源代码先被编译成字节码,这是一种平台无关的中间语言,然后由Java虚拟机(JVM)解释执行。这种方式使得Java具有跨平台的能力,实现了“写一...

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

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

    编译原理期末试题

    1. 计算机执行高级语言程序的两种途径是解释和编译。 2. 扫描器是词法分析器,它接受源程序,进行词法分析,并识别出一个个单词符号。 3. 自上而下的分析方法包括移进、归约、错误处理和接受等操作。 4. LR分析器...

    IIS网站预编译工具(源码)

    预编译的优点在于,它减少了运行时的解释和编译时间,因为大部分工作已经在部署前完成。此外,预编译还可以帮助发现潜在的语法错误和编译问题,避免了在生产环境中出现错误。 【C#】是编写ASP.NET应用程序的主要...

    北京工业大学编译原理考试一纸开卷【期末复习总结】(1).doc

    计算机执行高级语言编写的程序有两种途径:解释和编译。解释不生成目标代码,而编译则生成目标代码。 8. 自顶向下的语法分析方法: 自顶向下的语法分析方法需要解决的主要问题是回溯和左递归。解决方法包括提取...

    编译原理期末试题附答案

    计算机执行用高级语言编写的程序主要有两种途径:解释和编译。扫描器是词法分析器,它接受输入的源程序,对源程序进行词法分析并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。自上而下分析法采用...

    计算机专业课编译原理试题期末试题

    【编译原理】是计算机科学领域的一个重要分支,主要...这些题目覆盖了编译原理的核心概念,包括编译过程的不同阶段、文法类型、语法分析方法以及编译与解释的区别等,对于理解编译原理的基本理论和实践具有重要作用。

    大学生-编译原理期末试题(8套含答案+大题集).pdf

    21. 高级语言程序执行的途径:计算机执行用高级语言编写的程序主要有两种途径:解释和编译。 22. 词法分析器的定义和功能:扫描器是词法分析器,它接受输入的源程序,对源程序进行词法分析并识别出一个个单词符号。...

    gyp.rar v8库,用预编译v8

    V8以其快速的即时(JIT)编译和垃圾回收机制而闻名,使得JavaScript可以在服务器端和其他非浏览器环境中快速运行。 4. **预编译**: 预编译是在实际构建应用之前,先对部分源代码进行编译的过程,这有助于减少构建时间...

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

    总的来说,理解解释语言和编译语言的区别有助于我们更好地选择和使用编程工具,从而提高开发效率和程序性能。在职业生涯中,不断学习和提升相关技能,适应各种语言和工具,是成为优秀IT专业人士的关键。

    清华大学编译原理课后答案第二版

    编译程序和解释程序都属于翻译程序,但它们在翻译和执行方式上有所不同,编译程序会将源代码一次性翻译成目标代码,而解释程序则边翻译边执行源代码。 #### 4. 编译过程中错误信息的归属阶段 在编译过程中,错误...

    cygwin.rar v8编译库,用于编译v8

    Cygwin是一个在Windows操作系统上模拟Linux环境的开源工具集,它允许用户在Windows系统上运行...此外,由于Cygwin模拟环境的存在,可能在编译和运行过程中遇到一些与原生Windows环境不同的问题,需要耐心调试和解决。

    一种采用预先编译的V8引擎优化方法.pdf

    该方法将 Web 应用第一次解释执行过程中热点函数的字节码或机器码进行保存,使得 Web 应用下次运行时可以直接运行热点函数已保存的字节码或机器码,避免了热点函数的解释代价和编译代价。同时,本文还提出了新的代价...

    编译原理期末试题(8套含答案+大题集)

    计算机执行用高级语言编写的程序主要有两种途径:解释和编译。 2. 扫描器是__词法分析器___,它接受输入的__源程序___,对源程序进行___词法分析__并识别出一个个单词符号,其输出结果是单词符号,供语法分析器...

    全套编译原理复习与期末必考试题.doc

    《编译原理复习与期末必考试题》涵盖了编译程序设计的核心知识点,主要涉及编译程序的步骤、前端与后端的概念、程序的正确性、解释程序与编译程序的区别,以及文法和语言的理论。 编译程序的步骤与任务可以分为六个...

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

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

    编译原理期末考试题目及答案.pdf

    6. **解释和编译**:计算机执行高级语言程序有两种方式,即解释和编译。解释是逐行执行源代码,而编译则是先将源代码转化为目标代码再执行。 7. **分析技术**:自底向上分析使用移进、归约、错误处理和接收等操作;...

    编译原理期末考试题

    1. 计算机执行用高级语言编写的程序主要有两种途径:解释和编译。 2. 扫描器是词法分析器,它接受输入的源程序,进行词法分析并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。 3. 自上而下分析法...

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

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

Global site tag (gtag.js) - Google Analytics