對于想要學(xué)習(xí)編程語言的人來說,可能對于Python和java的區(qū)別不是很了解,尤其是看到Python的標(biāo)準(zhǔn)實(shí)現(xiàn)方式是將源代碼的語句編譯為字節(jié)碼的形式,之后再將字節(jié)碼解釋出來。這種方式和java的實(shí)現(xiàn)方式類似啊,java也是先將源代碼編譯成平臺無關(guān)的字節(jié)碼,然后由虛擬機(jī)解釋執(zhí)行。那為什么稱java為編譯型語言,而稱python為腳本語言呢?其實(shí)我們可以從以下幾點(diǎn)來解釋一下。
其實(shí)java,c#啥的算不上嚴(yán)格的傳統(tǒng)編譯型語言,又要編譯又要?jiǎng)討B(tài)執(zhí)行,支持一些動態(tài)特性又沒純動態(tài)語言徹底.python的字節(jié)碼編譯也不需要強(qiáng)制執(zhí)行。python的字節(jié)碼編譯也不需要強(qiáng)制執(zhí)行.這句話什么意思?python的源代碼可以不需要編譯就執(zhí)行?Java的發(fā)布方式是編譯后的.class,Python的發(fā)布方式是.py源代碼。運(yùn)行python的人看到的是 python的源代碼可以直接運(yùn)行,編譯過程由pvm自動執(zhí)行。對他而言,這就是腳本。所以叫腳本語言。而運(yùn)行java程序的人看到的是一些編譯過的.class文件。所以叫編譯語言。腳本語言是一個(gè)不需要顯示編譯的編程語言,在現(xiàn)代硬件和現(xiàn)代編譯技術(shù)下,編譯已經(jīng)變得越來越快導(dǎo)致腳本語言和傳統(tǒng)的編程語言之間的界限不在那么明顯。例如,V8作為Google Chrome瀏覽器的引擎,并且在瀏覽器之外使用了很多,實(shí)際上將JavaScript代碼編譯成機(jī)器代碼,而不是去解釋他們。事實(shí)上V8是一個(gè)優(yōu)化了的兩個(gè)階段的編譯器。一個(gè)語言是不是”腳本”我們不應(yīng)該只是從語言角度去看待,還應(yīng)該要在存運(yùn)行所在的環(huán)境去區(qū)別,你完全可以寫一個(gè)C語言的解釋器,并且將它作為腳本語言來運(yùn)行。同樣也可以將JavaScript編譯成機(jī)器代碼。
以上便是合肥網(wǎng)站優(yōu)化淺析腳本語言python 與JAVA的不同的內(nèi)容介紹了,希望能夠?qū)δ銈冇兴鶐椭丁?/p>
責(zé)編:LEX
轉(zhuǎn)載請注明出處?合肥網(wǎng)絡(luò)公司佳達(dá)科技專注于網(wǎng)站推廣?www.taokedg.com