在软考的复习过程中,一直认为语言处理程序非常抽象,在做题的时候也是错非常多(尽管这部分题不多哈) 。在进京赶考之前总结一下自己薄弱的地方。
语言处理程序就是能够将高级语言或汇编语言编写的程序翻译成某种机器语言程序,使程序能够在计算机上执行。也就是处理一些本不能够直接执行在计算机上的语言的一些程序,而这些语言就叫做源程序,经过语言处理程序处理成计算机可直接执行的程序。
假设感到非常抽象的话请看下图:
源程序主要就是汇编语言或高级语言编写的。
语言处理程序主要分为汇编程序、编译程序和解释程序三种。分别说明下面三种语言处理程序的原理:
1、汇编语言
汇编语言是为特定的计算机或计算机系统设计的面向机器的符号化的程序设计语言。用汇编语言编写的程序称为汇编语言程序。汇编程序的project是将汇编语言所编写的源程序翻译成机器指令程序。
2、编译程序和解释程序
编译程序的解释程序的工作原理基本同样。仅仅是在执行用户程序时有所差别。它们都是对某种高级语言编写的源程序进行翻译。详细例如以下:
详细编译程序的工作原理:
详细解释程序的工作原理:
中间代码的级别不同一时候也会有影响。级别越高就会越接近于机器语言。
二者差别:解释程序不产生源程序的目标程序。
高级语言编译与解释方式的比較:
(1)效率:编译比解释方式可能取得更高的效率。
由于源程序仅仅须要被编译程序翻译一次,就能够多次执行。
尽管编译程序除了对源程序进行语法和语义分析外。还要生成源程序的目标代码并进行优化。
(2)灵活性。解释方式比编译方式更灵活。因为解释程序须要重复检查源程序。
(3)可移植性。解释器一般也是用某种程序设计语言编写的,因此仅仅要对解释器进行又一次编译,就能够使解释器执行在不同的环境中。