A、解释程序
所谓解释程序是高级语言翻译程序的一种,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。
就像外语翻译中的“口译”一样,说一句翻一句,不产生全文的翻译文本。这种工作方式非常适合于人通过终端设备与计算机会话,如在终端上打一条
命令或语句,解释程序就立即将此语句解释成一条或几条指令并提交硬件立即执行且将执行结果反映到终端,从终端把命令打入后,就能立即得到计算结果。
这的确是很方便的,很适合于一些小型机的计算问题。但解释程序执行速度很慢,例如源程序中出现循环,则解释程序也重复地解释并提交执行这一组语句,这就造成很大浪费。
B、编译程序
这是一类很重要的语言处理程序,它把高级语言(如FORTRAN、COBOL、Pascal、C等)源程序作为输入,进行翻译转换,产生出机器语言的目标程序,然后再让计算机去执行这个目标程序,得到计算结果。
编译程序工作时,先分析,后综合,从而得到目标程序。所谓分析,是指词法分析和语法分析;所谓综合是指代码优化,存储分配和代码生成。为了完成这些分析综合任务,
编译程序采用对源程序进行多次扫描的办法,每次扫描集中完成一项或几项任务,也有一项任务分散到几次扫描去完成的。下面举一个四遍扫描的例子:第一遍扫描做词法分析;
第二遍扫描做语法分析;第三遍扫描做代码优化和存储分配;第四遍扫描做代码生成。
值得一提的是,大多数的编译程序直接产生机器语言的目标代码,形成可执行的目标文件,但也有的编译程序则先产生汇编语言一级的符号代码文件,
然后再调用汇编程序进行翻译加工处理,最后产生可执行的机器语言目标文件。
在实际应用中,对于需要经常使用的有大量计算的大型题目,采用招待速度较快的编译型的高级语言较好,虽然编译过程本身较为复杂,但一旦形成目标文件,
以后可多次使用。相反,对于小型题目或计算简单不太费机时的题目,则多选用解释型的会话式高级语言,如BASIC,这样可以大大缩短编程及调试的时间
- 浏览: 468633 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (575)
- eclipse (22)
- axis1.4 (3)
- oracle (42)
- java (32)
- 数据结构 (0)
- struts1.x (16)
- struts2.3.8 (14)
- hibernate2.x (3)
- hibernate3.5 (15)
- WinRAR4.20 (2)
- window7 (1)
- problem (1)
- 网址 (17)
- itext (5)
- JavaScript高级程序设计 (22)
- dom4j (1)
- jsp (5)
- jstl (3)
- PL/SQL developer工具 (1)
- derby (1)
- log4j (6)
- HotSpot VM (2)
- poi-2.0-RC2 (2)
- Ubuntu (4)
- weblogic (1)
- Paros安全测试 (2)
- DWR (2)
- jspsmart (2)
- jquery (8)
- css (1)
- jquery ui (2)
- Maven (12)
- Bootstrap (3)
- Ant1.7 (25)
- 保险 (8)
- XFire (3)
- CXF (4)
- Axis2 (5)
- 随笔 (4)
- spring mvc (2)
- dorado (1)
- UML (2)
- spring3.2.2 (9)
- 设计模式 (0)
- JXL (4)
- breakpoints (4)
- Chosen (1)
- BusinessObjects Enterprise XI Release 2 (9)
- FusionCharts (5)
- kettle (2)
- SQL Server 2008 (1)
- struts2.3.8随笔 (20)
- hibernate3.3.2随笔 (6)
- spring2.5.6随笔 (3)
- SVN (4)
- svnkit (1)
- FCKeditor (1)
- ajax (0)
- 日历控件 (1)
- socket编程 (2)
- java并发编程 (10)
- Excel (3)
- Crystal Reports XI Release 2 (1)
- jasperreport(报表工具) (1)
- 微信支付 (1)
- 支付宝支付 (1)
- GISS (1)
- PDF (2)
- hadoop (10)
- json (2)
- 文件上传下载 (1)
- DCSWeb (1)
- acegi security (16)
- oracle编程艺术 (1)
- RAID (1)
- CentOS (19)
- xmanager (1)
- HBase (1)
- Oracle性能优化技术内幕 (0)
- ExtJs (1)
- Oracle SQL高级编程 (0)
- extjs4 (4)
- 微信公众平台 (0)
- mysql (5)
- axure (5)
- mybatis (1)
- MagicDraw UML (0)
- activeMQ (0)
- JMS (1)
- slf4j (1)
- DbUnit (1)
- redis (2)
- SecureCRT (1)
- winSCP (1)
- vmware workstation (1)
- 面试 (5)
- CLodop(Web打印控件) (3)
- IBM MQ (1)
- Spring mvc风格restful接口开发 (1)
- Operating System (2)
- 测试 (0)
- java虚拟机 (17)
- 编译openJDK (1)
- java并发框架-Disruptor3.2 (4)
- Java Magic (3)
- 架构 (1)
- nginx (4)
- 微信开发 (0)
- 大型分布式网站架构设计与实现 (3)
- 阿里RocketMQ (3)
- DUBBO (1)
- zookeeper (3)
- RabbitMQ (0)
- Memcached (0)
- Ehcahe (0)
- AngularJs (0)
- SpringBoot (6)
- 摄影 (1)
- 中通 (9)
- TbSchedule (1)
- 养生 (1)
- Git (1)
- druid (1)
- kafka (2)
- Elasticsearch (2)
- kibana (2)
- 网关 (0)
- HttpClient (0)
- Guava (0)
- 读书 (0)
- 实时应用监控平台CAT (1)
- Python3 (1)
- java8 (1)
- 压测工具之jmeter (0)
- JProfiler (0)
- SSO (0)
- UNIX网络编程 (3)
- DDD (0)
- 下载 (0)
- 国泰 (2)
最新评论
-
wangyudong:
非常详细的代码实例,试着写出了自己的API用Wisdom RE ...
Spring MVC风格的restful接口开发
发表评论
-
计算1个字节表示的数字范围
2018-01-06 23:14 2536在计算1个字节表示的数字范围之前,我们需要先了解一下数字在计 ... -
解决Debug JDK source 无法查看局部变量的问题方案
2017-03-15 14:05 420一.问题阐述 首先我们要明白JDK source为什么在d ... -
[Java并发包学习七]解密ThreadLocal
2017-03-14 17:28 499相信读者在网上也看 ... -
信号量Semaphore
2017-03-04 14:13 358java中信号量Semaphore的作用是控制资源(比如 连 ... -
实现发邮件功能
2016-01-29 10:38 5941.发邮件功能 -
java中调用package
2015-09-14 18:00 417具体代码如下: public String ... -
java定时任务
2015-07-22 21:04 338java定时任务 -
前置机 SocketPatch
2015-04-28 23:09 553http://blog.csdn.net/java2000 ... -
java 线程
2015-04-25 20:28 378java 线程 -
java 分布式
2015-04-25 20:26 471java 分布式 -
端口号0
2015-04-21 22:53 636端口号0 -
ServerSocket构造函数中backlog参数的含义
2015-04-21 22:52 695ServerSocket构造函数中backlog参数的含义 -
java.util.Properties
2015-04-21 14:27 348Properties -
Date 处理
2015-04-14 19:31 3541.获取当前月1日 Date date = new Dat ... -
StringEscapeUtils工具的使用
2015-03-20 18:28 622StringEscapeUtils.escapeSql ... -
Calendar
2015-03-18 19:15 389Calendar中的常量单独使用并无意义,需要搭配方法使用 ... -
java 6.7.8在线帮助文档
2015-03-14 20:37 617我们自己下载的API不一定很全,下面是java官网提供的A ... -
java Util
2015-03-13 23:49 675java Util -
DateUtils
2015-03-09 23:11 432DateUtils -
DatabaseUtils
2015-03-09 23:10 510DatabaseUtils
相关推荐
在说解释执行和编译执行之前先说几个概念,需要的朋友可以参考下。
简要介绍十进制basic(decimal basic)的特性和如何编译执行。
编译原理——常见名词解释,包括编译原理课程每一章节重要名词和常见名词的介绍和解释。 例如:编译程序是一种程序,它把高级语言编写的源程序翻译成与之在逻辑上等价的机器语言或汇编语言的目标程序。 一个高级语言...
主要介绍了Java编译和解释执行对比及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
(1)解析:.class文件经过JVM内嵌的解析器解析执行 (2)编译:存在JIT编译器(Just In Time Compile 即时编译器)把经常运行的代码
最近发现有很多网友都提出一个问题:程序的编译与解释有什么区别?这篇文章就为大家介绍了编译和解释的区别,需要的朋友可以参考下
vb.net执行代码段 自解释自编译
1. 计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是 A)C语言程序仅可以编译执行 B)C语言程序仅可以解释执行 C)C语言程序既可以编译执行又可以解释执行 D)以上说法都不对 2. 以下叙述中...
涉及了编译原理的各个过程:词法分析,LL1语法分析,语义分析,中间代码生成,中间代码优化(常表达式优化,公共表达式优化,循环不变式优化),中间代码生成目标代码,目标代码的解释执行,详细地阐述了一个编译器...
2.编译执行和解释执行的区别在于: 是否产生目标代码 。 3.一个文法通常可表示成一个四元式G[S]=( VN,VT,P,S )。 4.一个递归文法所产生的句子,其个数必然是 无穷多 个。 5.设G[S]为一文法,由文法的开始符号...
编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。...
Python语言通常被看作是解释型语言,不同于像C语言那样的编译型。但实际上,如果说Python是编译型语言,也未尝不可。我们来一起看一下1! 1.举个栗子 首先看一个简单的例子: #!/usr/bin/python3 # file name :demo...
1、您介绍了执行引擎是如何选择解释执行和编译执行的入口,以及JIT模式下如何安装已编译好的native代码 2、你提到当使用-Xcomp启动VM的时候会在cal
代码可读性很差,代码可读性很差,代码可读性很差,Debug/MySQL4.exe可以直接执行,预览https://blog.csdn.net/D1124615130/article/details/106923146
使用GraalVM Community Edition和GnuCOBOL编译并执行CoBOLGraalVM Oracle多语言虚拟机GraalVM支持多种语言,包括Java,JavaScript,Ruby,Python,R,WebAssembly,C / C ++ 。 在另一个文档 Oracle使用称为低级...
编译原理作业,SQL的解释器,可以解释执行SQL命令,创建小型数据库+源代码+文档说明 - 小白不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,...
9、编译执行:由编译程序生成一个与源程序等价的目标程序,完全取代源程序【笔译】 10、解释执行:不生成目标程序,仅是对源程序逐句解释逐句执行【口译】 11、编译程序逻辑结构:词法分析-语法分析-语义分析和中间...
1、您介绍了执行引擎是如何选择解释执行和编译执行的入口,以及JIT模式下如何安装已编译好的native代码 2、你提到当使用-Xcomp启动VM的时候会在cal