本篇文章給大家介紹一分鐘解讀PHP是解釋型還是編譯型的?有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。
編譯型語言
- 使用專門的編譯器(類似于Windows下的Visual Studio)、針對特定平臺(操作系統(tǒng))將某種高級語言源代碼一次性“翻譯”成該平臺硬件執(zhí)行的機器碼(包括機器指令和操作數(shù)),并包裝成該平臺所能識別的可執(zhí)行性程序(.exe)的格式,這個轉(zhuǎn)換過程稱為編譯(Compile)。編譯生成的可執(zhí)行程序可以以脫離開發(fā)環(huán)境,在特定的平臺上獨立運行。有些程序在編譯結(jié)束之后,還可能需要對其他編譯好的目標(biāo)代碼進行鏈接,即組裝兩個以上的目標(biāo)代碼模塊生成最終的可執(zhí)行程序,通過這種方式實現(xiàn)低層次的代碼復(fù)用。
- 編譯型語言的代碼是一次編譯,循環(huán)使用。換句話說就是前人種樹,后人乘涼。
- C、C++、Objective -C 等都屬于編譯型語言
解釋型語言
- 在程序運行前將源程序預(yù)編譯成中間語言,然后再由解釋器執(zhí)行中間語言
- 每次執(zhí)行解釋型語言的程序都需要進行一次編譯,因此解釋型語言的程序運行效率通常較低,而且它不能脫離解釋器獨立運行。
- C#、PHP、Python、Java等都是解釋型語言。
OK,通過上面概念的簡單了解,你可能對解釋型、編譯型語言有了一個大概的了解。既然兩者平分天下,下面我們就來看一下兩者各有什么優(yōu)勢吧。
編譯型語言
優(yōu)勢
- 編譯型語言最大的優(yōu)勢之一就是其執(zhí)行速度。用C/C++編寫的程序運行速度要比用Java編寫的相同程序快30%-70%。
- 編譯型程序比解釋型程序消耗的內(nèi)存更少。
劣勢
- 不利的一面——編譯器比解釋器要難寫得多
- 編譯器在調(diào)試程序時提供不了多少幫助——有多少次在你的C語言代碼中遇到一個“空指針異?!睍r,需要花費好幾個小時來明確錯誤到底在代碼中的什么位置。
- 可執(zhí)行的編譯型代碼要比相同的解釋型代碼大許多。例如,C/C++的.exe文件要比同樣功能的Java的.class文件大很多。
- 編譯型程序是面向特定平臺的因而是平臺依賴的。
- 編譯型程序不支持代碼中實現(xiàn)安全性——例如,一個編譯型的程序可以訪問內(nèi)存的任何區(qū)域,并且可以對你的PC做它想做的任何事情(大部分病毒是使用編譯型語言編寫的)
- 由于松散的安全性和平臺依賴性,編譯型語言不太適合開發(fā)因特網(wǎng)或者基于Web的應(yīng)用。
解釋型語言
優(yōu)勢
- 極佳的調(diào)試支持。一名PHP程序員只需要幾分鐘就可以定位并修復(fù)一個“空指針異?!保驗镻HP運行環(huán)境不僅指明了異常的性質(zhì),而且給出了異常發(fā)生位置具體的行號和函數(shù)調(diào)用順序(著名的堆棧跟蹤信息)。這樣的便利是編譯型語言所無法提供的。
- 解釋器比編譯器容易實現(xiàn)
- 極佳的平臺獨立性
- 高度的安全性——這是互聯(lián)網(wǎng)應(yīng)用迫切需要的
- 中間語言代碼的大小比編譯型可執(zhí)行代碼小很多
劣勢
- 占用