解释程序和编译程序的区别
2016-02-29 19:34
239 查看
将高级语言程序翻译成机器语言程序的软件称为翻译程序
翻译程序有两种,一种是编译程序,一种是解释程序
1编译程序是将高级语言程序(如pascal ,fortran,c等)源代码作为输入,直接进行翻译生成出机器语言的目标程序,然后再让计算机执行这个目标程序,得到计算结果
编译程序工作时,先分析,后综合,从而得到目标程序,
分析指的是词法分析和语法分析,综合指的是代码的优化,存储的分配和代码的生成
为了完成分析综合任务,编译程序对源程序进行一次甚至多次的扫描,每次扫描完成一项或多项任务,也有可能一项任务呗分成多次扫描才能完成,
eg:进行一项4次扫描的翻译
(1)第一遍扫描做词法分析
(2)第二遍扫描做语法分析
(3)第三遍扫描做代码优化和存储分配,
(4)第四遍扫描做代码生成
另外,大多数扫描直接生成机器语言的目标代码,但是有的也生成汇编语言的目标代码,进而在转化为机器语言的目标代码
2解释程序
同样将源代码(如basic语言)的程序作为输入,解释一句就提交计算机执行一次,并不形成目标文件,就想口语交际的中翻译,说出一句翻译一句,或者是终端的dos窗口,在终端输入一条命令语句,解释程序立刻返回给终端若干句;
这种只是适用于小型机器的计算问题,解释程序的执行速度较慢,如果出现循环,也是重复着提交那么一句
在日常生活中,如果需要大量的计算,建议使用招待速度较快的编译程序,虽然编译程序较为复杂,但是一旦生成目标文件。以后就可以多次使用。对于小型的计算,就多采用解释性的回话高级语言
翻译程序有两种,一种是编译程序,一种是解释程序
1编译程序是将高级语言程序(如pascal ,fortran,c等)源代码作为输入,直接进行翻译生成出机器语言的目标程序,然后再让计算机执行这个目标程序,得到计算结果
编译程序工作时,先分析,后综合,从而得到目标程序,
分析指的是词法分析和语法分析,综合指的是代码的优化,存储的分配和代码的生成
为了完成分析综合任务,编译程序对源程序进行一次甚至多次的扫描,每次扫描完成一项或多项任务,也有可能一项任务呗分成多次扫描才能完成,
eg:进行一项4次扫描的翻译
(1)第一遍扫描做词法分析
(2)第二遍扫描做语法分析
(3)第三遍扫描做代码优化和存储分配,
(4)第四遍扫描做代码生成
另外,大多数扫描直接生成机器语言的目标代码,但是有的也生成汇编语言的目标代码,进而在转化为机器语言的目标代码
2解释程序
同样将源代码(如basic语言)的程序作为输入,解释一句就提交计算机执行一次,并不形成目标文件,就想口语交际的中翻译,说出一句翻译一句,或者是终端的dos窗口,在终端输入一条命令语句,解释程序立刻返回给终端若干句;
这种只是适用于小型机器的计算问题,解释程序的执行速度较慢,如果出现循环,也是重复着提交那么一句
在日常生活中,如果需要大量的计算,建议使用招待速度较快的编译程序,虽然编译程序较为复杂,但是一旦生成目标文件。以后就可以多次使用。对于小型的计算,就多采用解释性的回话高级语言
相关文章推荐
- 自适应中值滤波
- 20160229 ADO.NET连接SQL Server数据库(SqlHelper类)
- ionic splash screen 之后出现的白屏解决办法
- 常用字符串长度计算函数
- Retrofit2.0的Converter使用
- 自我介绍
- 浅谈过载保护
- PHP连接MySQL数据库过程
- 牛人的ACM经验 (转)
- 【转】没什么能够阻挡,你对自由的向往
- Java如何对Map进行排序详解
- MVC,MVP 和 MVVM 的图示
- MVP 一种实现方式
- 【BZOJ 3732】 Network Kruskal重构树+倍增LCA
- 饭卡------HDOJ杭电2546(还是01背包!!!!!!)
- 【转】小屁孩, 懂个啥
- 个人简介
- [原] KVM 环境下MySQL性能对比
- HDU 5056 Boring count
- js与html和css的关系