一段微故事秒懂编译器与解释器
一个商人要去德国和法国做生意,他只会中文,如何与当地商人沟通呢?
首先,他决定写信给德国和法国的商人,他找来一个翻译,让翻译将他用中文书写的信件,腾抄成德语和法语邮寄出去。
接着,他又提出雇佣两个随身翻译和他一起出行,以便随时随地将他所说的话翻译给当地的商人。
END
(编译器)就是他委托写信的翻译,把中文信件(高级语言)誊写成德语或法语信件(机器语言),再把英文信件(机器语言)交给当地商人(系统) 。
(解释器)就是他雇佣的两个随身翻译,把他的中文(高级语言)随时随地翻译成德语或法语(机器语言),说给当地商人(系统)
注:编译器或解释器任选其一即可达成目地——翻译
辅助理解:
Q:为什么要使用编译器或解释器?
A:计算机只能理解由数字组成的机器语言,高级语言之所以存在,是为了方便人们编写程序,枯燥无味的翻译工作,则交给编译器或解释器。
Q:我可以自由选择用编译器或解释器来运行程序吗?
A:可以,虽然我们常说c是编译型语言,python是解释性语言,但是我们可以自由的选择将源代码转换成机器语言的方式。
Q:如何选择编译器和解释器?
A:你所使用的语言(被翻译语言)→运行程序的平台(翻译以后的语言)
Q:编译器和解释器的区别在哪?
A:最大的区别就是编译器生成可执行文件后,可以单独运行,而解释器生成的文件还需要携带相应的解释器,无法单独运行。
Q:为什么编译器和解释器生成的可执行文件不能在所有平台使用?
A:正如世界上有法语区,英语区,汉语区一样,不同的操作系统也有它们自己的“语言” ,因此需要懂不同语言的“翻译”去生成不同的可执行文件。
Q:编译器和解释器哪个更好?
A:他们在运行速度,适配性等很多方面各有千秋,根据需求去选择。目前的主流依然是编译器。
Q:编译器翻译的文件还能转换为高级语言吗?
A:正如翻译成英文的中文,可以翻译回中文一样,只要找到相应的反编译器,就可以把机器语言翻译成高级语言。