在下列叙述中,( )是正确的。
A.执行目标程序时,编译程序必须已在内存
B.词法分析、语法分析、目标代码生成是编译过程中几个必须经过的阶段
C.解释程序不产生目标程序,因此执行速度快
D.解释程序是用汇编语言写的源程序
参考答案:B
解析: 从编译过程来看,源程序编译后产生目标程序。通常目标程序经连接后即可执行,这时已不需要编译程序,因此执行目标程序时编译程序可以不在内存。 从解释过程来看,源程序边解释边执行的过程中不产生目标程序,因此解释执行源程序时解释程序必须在内存,因为解释程序在解释执行过程中会出现重复翻译、重复查找标识表等现象,因此执行速度慢。 解释程序是一个将高级语言源程序解释执行的可执行程序,可以用汇编语言编写,也可用高级语言编写,经汇编或编译、连接后获得,当然还可用机器语言编写。 编译是把源程序翻译成目标程序的过程,需经过多个阶段的处理才能完成。在词法分析阶段,对源程序字符串进行扫描和分解,识别出有完整意义的最小语法单位,即单词;在语法分析阶段,编译程序根据语言的语法规则,把单词序列分解、判定为各种语法单位(如表达式、各种语句),通过语法分析,确定整个单词序列是否构成一个语法上正确的程序:在目标代码产生阶段,进行代码生成、变量及数据空间分配等工作,最后形成目标代码程序。由此可见,以上三个阶段是编译过程中几个必须经过的阶段。