高级语言的两种处理方式——编译和解释
1.编译型
工作过程图
编译程序功能就是把高级语言书写的源代码译成与之等价的目标程序(汇编语言或机器语言)。
2.解释型
解释程序实现高级语言的三种方式
解释型在词法、语法和语义分析方面与编译程序的工作原理基本相同,但在运行时直接执行源程序或源程序的内部形式,即解释程序不产生源程序的目标程序,这点是它与编译程序的主要区别。
解释程序通常可以分为两部分:
第一部分是分析部分,经语义分析后把源程序翻译成中间代码,中间代码常用逆波兰式表示。
第二部分是解释部分,用来对第一部分产生的中间代码进行解释执行。
3.两者的区别
这两种语言处理程序的根本区别是:
1.在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程;
2.而在解释方式下,解释程序和源程序(或其某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。解释器翻译源程序时不产生独立的目标程序,而编译器则需将源程序翻译成独立的目标程序。
简单的来说:
如果把整个过程比作为要将中文翻译为英文传达给别人:
则编译过程就好比有个翻译师,你说一句,翻译师就会直接将你这句话翻译出来,从而传达给别人。
而解释过程就好比将你所说的话先全部记到一张纸上,然后将通过一些翻译软件等,将这张纸上的全部内容翻译出来,再传达给别人。