日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

編譯和解釋的區(qū)別,python的編譯和執(zhí)行區(qū)別

編譯和解釋的區(qū)別

編譯和解釋的區(qū)別,python的編譯和執(zhí)行區(qū)別


1、在編譯方式下,機(jī)器上運(yùn)行的是與源程序等價(jià)的目標(biāo)程序,源程序和編譯程序都不再參與目標(biāo)程序的執(zhí)行過(guò)程,而在解釋方式下,解釋程序和源程序(或某種等價(jià)表示)要參與到程序的運(yùn)行過(guò)程中,運(yùn)行程序的控制權(quán)在解釋程序 。
2、解釋器翻譯源程序時(shí)不生成獨(dú)立的目標(biāo)程序,而編譯器則將源程序翻譯成獨(dú)立的目標(biāo)程序 。
python的編譯和執(zhí)行區(qū)別python編譯過(guò)程和執(zhí)行原理


(1)python執(zhí)行原理


這里的解釋執(zhí)行是相對(duì)于編譯執(zhí)行而言的 。我們都知道 , 使用C/C++之類的編譯性語(yǔ)言編寫(xiě)的程序 , 是需要從源文件轉(zhuǎn)換成計(jì)算機(jī)使用的機(jī)器語(yǔ)言,經(jīng)過(guò)鏈接器鏈接之后形成了二進(jìn)制的可執(zhí)行文件 。運(yùn)行該程序的時(shí)候 , 就可以把二進(jìn)制程序從硬盤載入到內(nèi)存中并運(yùn)行 。


但是對(duì)于Python而言 , python源碼不需要編譯成二進(jìn)制代碼,它可以直接從源代碼運(yùn)行程序 。當(dāng)我們運(yùn)行python文件程序的時(shí)候 , python解釋器將源代碼轉(zhuǎn)換為字節(jié)碼 , 然后再由python解釋器來(lái)執(zhí)行這些字節(jié)碼 。這樣,python就不用擔(dān)心程序的編譯,庫(kù)的鏈接加載等問(wèn)題了 。
【編譯和解釋的區(qū)別,python的編譯和執(zhí)行區(qū)別】

對(duì)于python解釋語(yǔ)言,有以下3方面的特性:


每次運(yùn)行都要進(jìn)行轉(zhuǎn)換成字節(jié)碼,然后再有虛擬機(jī)把字節(jié)碼轉(zhuǎn)換成機(jī)器語(yǔ)言 , 最后才能在硬件上運(yùn)行 。與編譯性語(yǔ)言相比,每次多出了編譯和鏈接的過(guò)程,性能肯定會(huì)受到影響 。


由于不用關(guān)心程序的編譯和庫(kù)的鏈接等問(wèn)題,開(kāi)發(fā)的工作也就更加輕松啦 。


python代碼與機(jī)器底層更遠(yuǎn)了,python程序更加易于移植,基本上無(wú)需改動(dòng)就能在多平臺(tái)上運(yùn)行 。


在具體計(jì)算機(jī)上實(shí)現(xiàn)一種語(yǔ)言,首先要確定的是表示該語(yǔ)言語(yǔ)義解釋的虛擬計(jì)算機(jī) , 一個(gè)關(guān)鍵的問(wèn)題是程序執(zhí)行時(shí)的基本表示是實(shí)際計(jì)算機(jī)上的機(jī)器語(yǔ)言還是虛擬機(jī)的機(jī)器語(yǔ)言 。這個(gè)問(wèn)題決定了語(yǔ)言的實(shí)現(xiàn) 。根據(jù)這個(gè)問(wèn)題的回答,可以將程序設(shè)計(jì)語(yǔ)言劃分為兩大類:編譯型語(yǔ)言和解釋型語(yǔ)言 。

    推薦閱讀