首頁  >  文章  >  後端開發  >  PHP需要編譯嗎

PHP需要編譯嗎

王林
王林原創
2019-09-16 17:53:117311瀏覽

PHP需要編譯嗎

雖然php是一門解釋型語言,但仍然需要編譯。以下為大家介紹哪些是編譯型語言,哪些是解釋型語言,它們有什麼優缺點。

編譯型語言:

1、使用專門的編譯器(類似Windows下的Visual Studio)、針對特定平台(作業系統)將某種高階語言原始碼一次「翻譯」成該平台硬體執行的機器碼(包括機器指令和操作數),並包裝成該平台所能識別的可執行性程式(.exe)的格式,這個轉換過程稱為編譯(Compile)。編譯產生的可執行程式可以以脫離開發環境,在特定的平台上獨立運作。有些程式在編譯結束之後,還可能需要對其他編譯好的目標程式碼進行鏈接,即組裝兩個以上的目標程式碼模組生成最終的可執行程序,透過這種方式實現低層次的程式碼復用。

2、編譯型語言的程式碼是一次編譯,循環使用。換句話說就是前人種樹,後人乘涼。

3、C、C 、Objective -C 等都屬於編譯型語言

#解釋型語言:

1、在程式執行前將原始程式預先編譯成中間語言,然後再由解釋器執行中間語言

2、每次執行解釋型語言的程式都需要進行一次編譯,因此解釋型語言的程式運作效率通常較低,而且它不能脫離解釋器獨立運作。

3、C#、PHP、Python、Java等都是解釋型語言。

編譯型語言優勢:

1、編譯型語言最大的優點之一就是其執行速度。用C/C 寫的程式運行速度比用Java寫的相同程式快30%-70%。

2、編譯型程式比解釋型程式消耗的記憶體更少。

劣勢:

1、不利的一面——編譯器比解釋器要難寫得多

2、編譯器在偵錯程序時提供不了多少幫助——有多少次在你的C語言代碼中遇到一個“空指針異常”時,需要花費好幾個小時來明確錯誤到底在代碼中的什麼位置。

3、可執行的編譯型程式碼比相同的解釋型程式碼大很多。例如,C/C 的.exe檔要比同樣功能的Java的.class檔大很多。

4、編譯型程式是面向特定平台的因而是平台依賴的。

5、編譯型程式不支援程式碼中實現安全性-例如,一個編譯型的程式可以存取記憶體的任何區域,並且可以對你的PC做它想做的任何事情(大部分病毒是使用編譯型語言編寫的)

6、由於鬆散的安全性和平台依賴性,編譯型語言不太適合開發網際網路或基於Web的應用。 

解釋型語言優勢:

1、極佳的除錯支援。一名PHP程式設計師只需要幾分鐘就可以定位並修復一個“空指標異常”,因為PHP運行環境不僅指明了異常的性質,而且給出了異常發生位置具體的行號和函數呼叫順序(著名的堆疊追蹤資訊)。這樣的便利是編譯型語言所無法提供的。

2、解釋器比編譯器容易實現

3、極佳的平台獨立性

4、高度的安全性-這是網路應用迫切需要的

5、中間語言程式碼的大小比編譯型執行程式碼小很多

缺點:

1、佔用更多的記憶體和CPU資源。這是由於,為了運行解釋型語言編寫的程序,相關的解釋器必須先運行。解釋器是複雜的,智慧的,大量消耗資源的程式並且它們會佔用很多CPU週期和記憶體。

2、運作效率較編譯型程式慢很多。解釋器會做很多程式碼優化,運行時安全性檢查;這些額外的步驟佔用了更多的資源並進一步降低了應用程式的運行速度。

以上內容僅供參考!

推薦教學:PHP影片教學

#

以上是PHP需要編譯嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn