A. 请解释翻译程序和编译程序及二者之间的关系。
解释程序所谓解释程序是高级语言翻译程序的一种,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成标程序。就像外语翻译中的“口译”一样,说一句翻一句,不产生全文的翻译文本。这种工作方式非常适合于人通过终端设备与计算机会话,如在终端上打一条命令或语句,解释程序就立即将此语句解释成一条或几条指令并提交硬件立即执行且将执行结果反映到终端,从终端把命令打入后,就能立即得到计算结果。这的确是很方便的,很适合于一些小型机的计算问题。但解释程序执行速度很慢,例如源程序中出现循环,则解释程序也重复地解释并提交执行这一组语句,这就造成很大浪费。
编译程序这是一类很重要的语言处理程序,它把高级语言(如FORTRAN、COBOL、Pascal、C等)源程序作为输入,进行翻译转换,产生出机器语言的目标程序,然后再让计算机去执行这个目标程序,得到计算结果。编译程序工作时,先分析,后综合,从而得到目标程序。所谓分析,是指词法分析和语法分析;所谓综合是指代码优化,存储分配和代码生成。为了完成这些分析综合任务,编译程序采用对源程序进行多次扫描的办法,每次扫描集中完成一项或几项任务,也有一项任务分散到几次扫描去完成的。下面举一个四遍扫描的例子:第一遍扫描做词法分析;第二遍扫描做语法分析;第三遍扫描做代码优化和存储分配;第四遍扫描做代码生成。值得一提的是,大多数的编译程序直接产生机器语言的目标代码,形成可执行的目标文件,但也有的编译程序则先产生汇编语言一级的符号代码文件,然后再调用汇编程序进行翻译加工处理,最后产生可执行的机器语言目标文件。在实际应用中,对于需要经常使用的有大量计算的大型题目,采用招待速度较快的编译型的高级语言较好,虽然编译过程本身较为复杂,但一旦形成目标文件,以后可多次使用。相反,对于小型题目或计算简单不太费机时的题目,则多选用解释型的会话式高级语言,如BASIC,这样可以大大缩短编程及调试的时间
B. 编译程序和解释程序都是什么意思
编译程序是将源程序整体编译成目标程序后,再一次性执行的工具;而解释程序是一边解释源程序,一边执行,不形成目标程序的工具。以下是两者的具体区别:
执行方式:
执行效率:
使用场景:
类比理解:
C. 高级语言程序有两种工作方式编译方式和解释方式
高级语言程序有两种工作方式编译方式和解释方式如下:
高级语言的翻译过程有两种形式:编译方式和解释方式。
编译方式是将高级语言全部翻译成机器指令之后,再将机器指令交予计算机执行;解释方式是将高级语言逐句翻译,翻译一句,执行一句,不产生整个目标程序。
所谓编译方式就是由计算机专业人员事先编好一个编译程序构成一个编译系统存放到计算机内,当把高级语言程序输入到计算机内并运行程序之后,编译系统就把它整个翻译为目标代码程序,然后执行目标代码程序。这与日常生活中的笔译类似。
由于汇编语言依赖于硬件体系,且助记符量大难记,于是人们又发明了更加易用的所谓高级语言。在这种语言下,其语法和结构更类似汉字或者普通英文,且由于远离对硬件的直接操作,使得一般人经过学习之后都可以编程。高级语言通常按其基本类型、代系、实现方式、应用范围等分类。
D. 高级语言处理程序的编译方式和解释方式的区别
翻译方式在编程领域主要分为两大类:编译和解释。
编译方式操作时,首先在计算机内部建立一个编译程序,它会将高级语言编写的源程序整体转化为机器指令表示的目标程序。一旦源程序输入到计算机中,编译程序便会自动将其翻译成机器可执行的目标代码。
而解释方式中,计算机内预设了解释程序。当高级语言源程序输入后,解释程序将逐句翻译源程序,每翻译完一句,程序即执行一句。简单来说,编译方式产出的是机器可直接执行的目标代码,而解释方式则生成一种介于源代码与机器指令之间的中间语言。
两者的差异在于执行时机和程序结构的生成方式。编译方式在程序执行前完成整个编译过程,生成独立的目标代码,后续执行时无需解释。而解释方式则在程序运行时实时翻译并执行,每一次执行都涉及翻译过程,效率上相对较低。
编译程序的优势在于执行效率高,且一次编译后可在不同环境中运行,无需额外解释过程。但缺点是程序修改后需要重新编译。解释程序则更灵活,修改源代码后立即可见效果,但执行效率和性能通常低于编译程序。
综合考虑,编译与解释方式各有其应用场景。编译程序适用于需求稳定、执行效率要求高的场合,如系统软件、大型应用等;解释程序则适合快速开发、频繁修改的项目,如网页脚本、动态语言等。