一、主體不同dao
1、編譯執bai行:由編譯程序將目標代碼一du次性編譯成目標程zhi序,再由機器運dao行目標程序。
2、解釋執行:將源語言直接作為源程序輸入,解釋執行解釋一句后就提交計算機執行一句,並不形成目標程序。
二、優勢不同
1、編譯執行:相比解釋執行編譯執行效率高,占用資源小,適合復雜程序
2、解釋執行:開發速度快,出現嚴重BUG的幾率小。
三、缺點不同
1、編譯執行:兼容性差,例如在windows平台上寫的編譯程序一般不可以在unix平台上運行。
2、解釋執行:解析需要時間,不生成目標程序而是一句一句的執行的方式會造成計算機資源的浪費,即執行效率低。
四、各語言的執行類型
- 編譯執行:GO語言、C語言、C++
- 解釋執行:python
- 半編譯半解釋型語言:java、C#
五、關於 Python
Python 屬於典型的解釋型語言,所以運行 Python 程序需要解釋器的支持,只要你在不同的平台安裝了不同的解釋器,你的代碼就可以隨時運行,不用擔心任何兼容性問題,真正的“一次編寫,到處運行”。
Python 幾乎支持所有常見的平台,比如 Linux、Windows、Mac OS、Android、FreeBSD、Solaris、PocketPC 等,你所寫的 Python 代碼無需修改就能在這些平台上正確運行。也就是說,Python 的可移植性是很強的。
總結
我們將編譯型語言和解釋型語言的差異總結為下表:類型 | 原理 | 優點 | 缺點 |
---|---|---|---|
編譯型語言 | 通過專門的編譯器,將所有源代碼一次性轉換成特定平台(Windows、Linux 等)執行的機器碼(以可執行文件的形式存在)。 | 編譯一次后,脫離了編譯器也可以運行,並且運行效率高。 | 可移植性差,不夠靈活。 |
解釋型語言 | 由專門的解釋器,根據需要將部分源代碼臨時轉換成特定平台的機器碼。 | 跨平台性好,通過不同的解釋器,將相同的源代碼解釋成不同平台下的機器碼。 | 一邊執行一邊轉換,效率很低。 |