半编译半解释的Java语言和C++、Python等语言的区别
1. 引言
????????我們編寫的代碼需要按照某些組織制定的規范,對于程序員來說,能夠輕松理解;但是對于計算機來說,它們根本無法理解我們編寫的代碼,只能識別二進制指令。
2. 編譯型語言(如C++)和解釋型語言(如Python)
編譯型語言:源代碼直接被編譯為可執行文件(二進制指令),在后續直接運行可執行文件,效率較高;
解釋型語言:邊執行源代碼邊轉換為二進制指令,每一次都需要重新解釋執行,效率較低。
3. 可執行文件為什么不能跨平臺
????????首先,這里的平臺其實是指操作系統。那么可執行文件為什么不能跨操作系統呢?有些人會回答是由于不同的操作系統具有不同的二進制指令。但其實只有計算機的架構不同(如x86、ARM),才存在指令不同。實際上,不同操作系統的可執行文件有不同的格式,Windows是PE格式,而Linux是ELF格式。
? ? ? ? 其次,不同的操作系統在文件操作、資源分配、任務調度上存在著不同。
4. 解釋型語言為什么能跨平臺
? ? ? ? 源代碼在不同的平臺上有不同的解釋器進行解釋、運行,因此解釋型語言可以跨平臺。注意:雖然解釋型語言是邊執行邊解釋,但仍然要整體進行語法、語義檢查后再一行一行解釋執行。
5. 半編譯半解釋的Java語言
? ? ? ? java源代碼先經過編譯,得到 .class為后綴的字節碼文件,然后該字節碼文件可以跨平臺。因為不同平臺有不同的Java虛擬機(Java Virtual Machine, JVM),JVM可以解析、執行字節碼文件。所以有著“一次編譯,到處運行”的口號。
總結
以上是生活随笔為你收集整理的半编译半解释的Java语言和C++、Python等语言的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈AQS(AbstractQueued
- 下一篇: 路径规划后对路径进行平滑处理