答案當(dāng)然是不一樣,具體原因涉及到編譯原理,下面詳細(xì)解釋一下。
就目前的編程語(yǔ)言來(lái)說(shuō),主要分兩種模式。
一種是編譯型的語(yǔ)言,典型代表就是C/C++,編譯型語(yǔ)言會(huì)將程序代碼直接轉(zhuǎn)換為可在特定機(jī)器上運(yùn)行的二進(jìn)制(機(jī)器語(yǔ)言)程序,它的特點(diǎn)是運(yùn)行速度快,但是編譯需要較長(zhǎng)時(shí)間,編譯后的程序無(wú)法跨平臺(tái)運(yùn)行。
還有一種是解釋型語(yǔ)言(可以細(xì)分,比如基于本地的解釋器,如Basic,Python等,還有基于虛擬機(jī)的解釋器,如Java,C#等),這種語(yǔ)言不是把程序直接編譯成機(jī)器代碼,而是在運(yùn)行時(shí)把代碼逐條翻譯成機(jī)器代碼(基于虛擬機(jī)的語(yǔ)言會(huì)先將代碼編譯成中間語(yǔ)言代碼,然后再在虛擬機(jī)上解釋執(zhí)行這些中間語(yǔ)言),解釋器語(yǔ)言的特點(diǎn)是結(jié)果即時(shí)可見(jiàn),可以跨平臺(tái)運(yùn)行,但是運(yùn)行效率相比編譯型語(yǔ)言要慢一些。
此外,即使對(duì)同一種語(yǔ)言編寫(xiě)的代碼,不同的編譯器編譯后的程序,運(yùn)行速度也會(huì)存在一定的差異,因?yàn)楝F(xiàn)代的編譯器里面都加入了優(yōu)化機(jī)制,然而優(yōu)化策略、優(yōu)化算法等實(shí)現(xiàn)細(xì)節(jié)卻不盡相同,導(dǎo)致最終生成的exe也就有一些差異了。