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