java與python運行機制對比,編譯與解釋有什麼不同?

java與python運行機制對比,編譯與解釋有什麼不同?

1.編譯語言vs解釋語言

首先,要先明確“編譯”與“解釋”兩個詞語的意思,這兩個詞語的意思明確了區分度就出來了

編譯 解釋
本質 翻譯 翻譯
原材料 高級編程語言 高級編程語言
發生時間 第一次運行前 每次運行的時候
產物 機器語言文件(如windows下的.exe)

然後,我們可以由上述詞語的含義對比兩種類型的語言(定義是根據上表自定義給出,便於理解)

編譯性語言 解釋型語言
定義 該高級編程語言在第一次運行之前會先翻譯成機器語言文件,並且在之後的運行成不再翻譯而直接運行機器語言文件 該高級編程語言在每次運行中都會進行翻譯,逐行翻譯成機器語言執行
優勢 運行速度快 兼容性強
例子 c, c++ JavaScript,腳本語言

2.Java vs Python

Java和Python都更加類似於一種編譯-解釋型語言,究其本質是一種具有轉換過程的解釋型語言,是編譯型和解釋型二者發展融合趨勢的體現。

2.1 Java

在這裏插入圖片描述

2.2 Python

在這裏插入圖片描述

2.3 對比

Java Python
源文件 .java .py
編譯器 javac.exe python.exe
中間代碼 .class(一定保存) .pyc(不一定保存)
靜態 動態
解釋執行 虛擬機+java.exe 解釋器+python.exe
相同點 跨平臺運行 跨平臺運行
最大不同 中間過程可分離 中間過程連貫

3.小結

兩者在都想要相應跨平臺運行的需求,所以在機制的設計上有序同相同的地方,共同地體現了編譯型語言與解釋型語言地界限越來越模型的現狀。但是究其細節,兩者在跨平臺的實現上是不一樣的,對於中間過程的靜態還是動態,可分離還是密封,環境如何納入考慮這個都是不一樣的。

參考:

https://blog.csdn.net/Rain722/article/details/52624616

https://blog.csdn.net/Rain722/article/details/52624616

https://blog.csdn.net/weixin_33919950/article/details/88014835

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章