1991年,第一個(gè)Python解釋器誕生,它是用C語(yǔ)言實(shí)現(xiàn)的,并能夠調(diào)用C語(yǔ)言的庫(kù)文件。從一出生,Python已經(jīng)具有了:類,函數(shù),異常處理,包含表和詞典在內(nèi)的核心數(shù)據(jù)類型,以及模塊為基礎(chǔ)的拓展系統(tǒng)。
這里需要牽扯一個(gè)“編譯器”的概念,其主要作用是便于人編寫,閱讀,維護(hù)的高級(jí)計(jì)算機(jī)語(yǔ)言翻譯為計(jì)算機(jī)能識(shí)別,運(yùn)行的低級(jí)機(jī)器語(yǔ)言的程序。
編譯器翻譯語(yǔ)言方式有2種:編譯、解釋。
①編譯型語(yǔ)言:需通過(guò)編譯器(compiler)將源代碼編譯成機(jī)器碼,之后才能執(zhí)行的語(yǔ)言。
一般需經(jīng)過(guò)編譯(compile)、鏈接(linker)這兩個(gè)步驟。編譯是把源代碼編譯成機(jī)器碼,鏈接是把各個(gè)模塊的機(jī)器碼和依賴庫(kù)串連起來(lái)生成可執(zhí)行文件。
②解釋型語(yǔ)言:解釋性語(yǔ)言的程序不需要編譯,相比編譯型語(yǔ)言省了道工序,解釋性語(yǔ)言在運(yùn)行程序的時(shí)候才逐行翻譯。
Python是一種解釋型語(yǔ)言,它的源代碼不需要編譯,可以直接從源代碼運(yùn)行程序。Python解釋器將源代碼轉(zhuǎn)換為字節(jié)碼,然后把編譯好的字節(jié)碼轉(zhuǎn)發(fā)到Python虛擬機(jī)(PythonVirtualMachine,PVM)中執(zhí)行。
當(dāng)我們執(zhí)行Python代碼的時(shí)候,在Python解釋器用四個(gè)過(guò)程“拆解”我們的代碼:
首先,當(dāng)你把鍵入代碼交給Python處理的時(shí)候會(huì)先進(jìn)行詞法分析,如果你鍵入關(guān)鍵字或者當(dāng)輸入關(guān)鍵字有誤時(shí),都會(huì)被詞法分析所觸發(fā),不正確的代碼將不會(huì)被執(zhí)行。
Python會(huì)進(jìn)行語(yǔ)法分析,例如當(dāng)"foriintest:"中,test后面的冒號(hào)如果被寫為其他符號(hào),代碼依舊不會(huì)被執(zhí)行。
進(jìn)入最關(guān)鍵的過(guò)程,在執(zhí)行Python前,Python會(huì)生成.pyc文件,這個(gè)文件就是字節(jié)碼。
將編譯好的字節(jié)碼轉(zhuǎn)發(fā)Python虛擬機(jī)中進(jìn)行執(zhí)行:由PythonVirtualMachine(Python虛擬機(jī))來(lái)執(zhí)行這些編譯好的字節(jié)碼。
以上內(nèi)容為大家介紹了Python解釋器的誕生,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://m.2667701.com/