编译器的主要作用是什么?( )
这题考编译与解释的区别。拿到题先想‘源代码怎么变成机器能懂的指令’,编译器是一次性翻译生成目标文件,解释器是边翻译边执行,把这两个核心特征对照选项,B 直接命中定义,其余都是干扰项。
学生容易把‘执行’和‘翻译’混在一起,觉得编译器也能‘运行’程序,或者把调试、内存管理这些运行时功能安到编译器头上。其实编译器只管翻译,不负责调试(那是调试器的事),也不管内存分配(那是操作系统的事)。解释器虽然也涉及执行,但它是逐行翻译并立即执行,和编译器‘先翻译后执行’的模式完全不同,这是命题人最爱挖的坑。
这题考查的是编译与解释这两个核心概念的区别,属于计算机基础中关于程序执行机制的基础知识。
编译器是什么?它就像一个翻译官,把人类能看懂的高级语言(比如 C++、Java 的源代码)一次性翻译成计算机能直接执行的机器指令(目标代码)。翻译完成后,生成的是一个独立的可执行文件。以后你运行这个程序时,计算机直接读这个文件,不再需要编译器参与。
解释器呢?它更像是边翻译边执行的‘实时口译员’,源代码不生成独立文件,而是每读一行就翻译一行并立刻执行,比如 Python、JavaScript 就是这样。
命题人特别喜欢在‘执行’和‘翻译’这两个动作上做文章。选项 A 说‘直接执行源代码’,这听起来很像编译器,但其实编译器不执行,它只翻译;真正直接执行源代码的是解释器。选项 C 和 D 则是典型的‘功能错位’——调试是调试器的事,内存管理是操作系统的事,跟编译器无关。这种‘张冠李戴’是入门级考试最爱用的干扰手段。