查ICP網(wǎng):全新的綜合網(wǎng)站備案信息查詢網(wǎng)
Copyright ? 2008-2028 www.mshuangcha.com [ 查icp] All Rights Reserved.
編譯與解釋的區(qū)別在哪?
編譯是將源程序翻譯成可執(zhí)行的目標代碼,翻譯與執(zhí)行是分開的;而解釋是對源程序的翻譯與執(zhí)行一次性完成,不生成可存儲的目標代碼。這只是表象,二者背后的最大區(qū)別是:對解釋執(zhí)行而言,程序運行時的控制權在解釋器而不在用戶程序;對編譯執(zhí)行而言,運行時的控制權在用戶程序。
解釋具有良好的動態(tài)特性和可移植性,比如在解釋執(zhí)行時可以動態(tài)改變變量的類型、對程序進行修改以及在程序中插入良好的調試診斷信息等,而將解釋器移植到不同的系統(tǒng)上,則程序不用改動就可以在移植了解釋器的系統(tǒng)上運行。同時解釋器也有很大的缺點,比如執(zhí)行效率低,占用空間大,因為不僅要給用戶程序分配空間,解釋器本身也占用了寶貴的系統(tǒng)資源。
編譯器是把源程序的每一條語句都編譯成機器語言,并保存成二進制文件,這樣運行時計算機可以直接以機器語言來運行此程序,速度很快;
而解釋器則是只在執(zhí)行程序時,才一條一條的解釋成機器語言給計算機來執(zhí)行,所以運行速度是不如編譯后的程序運行的快的。
編譯和解釋的區(qū)別:
1、與計算機的交流方式不同
解釋程序不產生目標代碼,它逐條地取出源程序中的語句,邊解釋,邊執(zhí)行;解釋器把源代碼文件邊解釋成機器語言邊交給CPU執(zhí)行。
編譯是將源程序翻譯成可執(zhí)行的目標代碼,執(zhí)行可執(zhí)行程序文件,翻譯與執(zhí)行是分開的。
2、運行環(huán)境不同
解釋程序可跨平臺使用,因為解釋器已經做好了對不同平臺的交互處理,用戶寫的源代碼不需要再考慮差異性,源代碼所有平臺都可以直接執(zhí)行。
編譯程序跨平臺性不好,不同操作系統(tǒng),調用底層的機器指令不同,需為不同平臺生成不同的機器碼文件。
3、開發(fā)便捷性
解釋程序可以隨時修改,立刻生效,改完源代碼后,直接運行看效果
編譯程序每次修改源代碼,都要重新編譯,生成機器碼文件
4、運行速度
解釋程序運行效率低,所有的代碼均需經過解釋器邊解釋變執(zhí)行,速度比編譯型慢很多
編譯程序執(zhí)行速度快,因為你的程序代碼已經翻譯成了是計算機可以理解的機器語言。