编译器的主要功能是( ).
拿到题先别急着背定义,直接抓关键词‘编译器’和‘翻译’。命题人最爱考‘编译’与‘解释’的区别,核心就是看它是一次性把整个源程序翻译成目标代码(指令),还是边翻译边执行。记住:编译器产可执行文件,解释器不产。
最容易栽跟头的就是把‘高级语言转高级语言’当成编译器的功能,其实那是‘语言转换器’或‘转译器’;还有把‘源程序重新组合’误认为是编译器的主要工作,那其实是链接器(Linker)干的活。解释器和编译器的区别也要分清:解释器是逐行翻译执行,不生成独立的可执行文件,而编译器是一次性把源程序翻译成机器指令(目标代码),生成可执行文件。这些坑在选择题里经常混在一起,一定要看清题干问的是‘主要功能’。
这道题考的是编译原理中最基础、也是最容易混淆的概念:编译器与解释器的区别。命题人特别喜欢在单选题里把这两个概念放在一起,让你选出‘编译器主要功能’,往往还会夹杂‘语言转换器’‘链接器’等干扰项。
编译器:把用高级语言(比如 C、C++、Pascal)写好的源程序,一次性全部翻译成机器能直接执行的指令(目标代码),生成一个可执行文件。翻译完就可以关机,下次再跑时直接加载机器码。
解释器:不是先翻译完再运行,而是读到哪行,翻译哪行,马上执行哪行。它不生成独立的可执行文件,每次运行都要重新翻译,所以执行慢一点,但跨平台方便,调试也快。