编译与运行、解释程序与编译程序
2013-10-08 09:59
295 查看
编译:产生目标代码。
运行:执行目标代码。
编译程序:
解释程序:
运行:执行目标代码。
编译程序:
这是一类很重要的语言处理程序,它把高级语言(如FORTRAN、COBOL、Pascal、C等)源程序作为输入,进行翻译转换,产生出机器语言的目标程序,然后再让计算机去执行这个目标程序,得到计算结果。 编译程序工作时,先分析,后综合,从而得到目标程序。所谓分析,是指词法分析和语法分析;所谓综合是指代码优化,存储分配和代码生成。为了完成这些分析综合任务,编译程序采用对源程序进行多次扫描的办法,每次扫描集中完成一项或几项任务,也有一项任务分散到几次扫描去完成的。下面举一个四遍扫描的例子:第一遍扫描做词法分析;第二遍扫描做语法分析;第三遍扫描做代码优化和存储分配;第四遍扫描做代码生成。 值得一提的是,大多数的编译程序直接产生机器语言的目标代码,形成可执行的目标文件,但也有的编译程序则先产生汇编语言一级的符号代码文件,然后再调用汇编程序进行翻译加工处理,最后产生可执行的机器语言目标文件。 在实际应用中,对于需要经常使用的有大量计算的大型题目,采用招待速度较快的编译型的高级语言较好,虽然编译过程本身较为复杂,但一旦形成目标文件,以后可多次使用。相反,对于小型题目或计算简单不太费机时的题目,则多选用解释型的会话式高级语言,如BASIC,这样可以大大缩短编程及调试的时
解释程序:
所谓解释程序是高级语言翻译程序的一种,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。就像外语翻译中的“口译”一样,说一句翻一句,不产生全文的翻译文本。这种工作方式非常适合于人通过终端设备与计算机会话,如在终端上打一条命令或语句,解释程序就立即将此语句解释成一条或几条指令并提交硬件立即执行且将执行结果反映到终端,从终端把命令打入后,就能立即得到计算结果。这的确是很方便的,很适合于一些小型机的计算问题。但解释程序执行速度很慢,例如源程序中出现循环,则解释程序也重复地解释并提交执行这一组语句,这就造成很大浪费。
相关文章推荐
- Linux下程序的编译链接及装载(解释)运行
- 1.4.Qt通过命令行编译运行程序注意事项
- VS2005编译的程序在没有装VS2005的机器上无法运行的解决办法
- 【Qt学习笔记】在Qt编译好之后运行程序时提示:程序异常结束。The process was ended forcefully. ....exe crashed.
- 程序编译链接运行深入剖析
- golang编译程序从后台运行,不出现dos窗口
- VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题
- vs2008编译console程序,运行时不显示console画面
- xcode 编译程序运行,总是提示输入用户名和密码的解决方法
- 用VS编译出可独立运行的程序
- 用UltraEdit编辑,编译并运行java程序
- c程序从编译链接到运行
- 使用命令行编译打包运行MapReduce程序
- VS2015中编译lua.lib并运行lua程序,版本lua5.3.4
- 程序编译运行时头文件或动态链接库的查找
- 今天学习C#,在dos下用csc命令编译,提示“csc不是内部或外部命令,也不是可运行的程序... ”
- java 程序编译和运行过程详解
- Linux下C程序的编辑,编译和运行以及调试
- [转]在 Sublime Text 2 中编译和运行 Java 程序
- VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题