編譯型語言與解釋型語言
#1、編譯型語言
需透過編譯器(compiler)將原始碼編譯成機器碼,之後才能執行的語言。一般需經過編譯(compile)、連結(linker)這兩個步驟。
編譯就是把原始碼編譯成機器碼,連結是把各個模組的機器碼和依賴函式庫串連起來產生可執行檔。 (推薦學習:PHP程式從入門到精通)
優點:編譯器一般會有預先編譯的過程對程式碼進行最佳化。因為編譯只做一次,執行時不需要編譯,所以編譯型語言的程式執行效率高。可以脫離語言環境獨立運作。
缺點:編譯之後如果需要修改就需要整個模組重新編譯。編譯的時候會根據對應的運行環境產生機器碼,不同的作業系統之間移植就會有問題,需要根據執行的作業系統環境編譯不同的執行檔。
代表語言:C、C 、Pascal、Object-C以及最近很火的蘋果新語言swift
2、解釋型語言
解釋性語言的程式不需要編譯,比起編譯型語言省了道工序,解釋性語言在執行程式的時候才逐行翻譯。
優點:有良好的平台相容性,在任何環境中都可以運行,前提是安裝了解釋器(虛擬機器)。靈活,修改程式碼的時候直接修改就可以,可以快速部署,不用停機維護。
缺點:每次執行的時候都要解釋一遍,效能上不如編譯型語言。
代表語言:JavaScript、Python、Erlang、PHP、Perl、Ruby
3、混合型語言
既然編譯型和解釋型各有缺點就會有人想到把兩種類型整合起來,取其精華去其糟粕。就出現了半編譯型語言。
例如C#,C#在編譯的時候不是直接編譯成機器碼而是中間碼,.NET平台提供了中間語言運行庫運行中間碼,中間語言運行庫類似於Java虛擬機器。 .net在編譯成IL程式碼後,保存在dll中,首次運行時由JIT在編譯成機器碼緩存在記憶體中,下次直接執行。
Java先生成字節碼再在Java虛擬機器中解釋執行。嚴格來說混合型語言屬於解釋型語言。 C#更接近編譯型語言。
PHP是解釋性語言:
但是,它們的相似之處主要在於基礎的底層格式:它們都只是文字。您可以不在Web瀏覽器中開啟html文件,而是在Notepad(記事本程式)或類似Eclipse的整合開發環境、或在類似vi或emacs這樣的命令列編輯器中開啟html檔。同樣,PHP程式碼也是文字組成的。
一旦您獲得一個腳本之後,您就得讓PHP程式解釋該腳本。 PHP解釋器是一款運行於您的web伺服器上並且可讀取、理解該腳本內容的軟體,它向web伺服器輸出解釋後的程式碼並指示伺服器下一步跳到哪裡,或者如何處理用戶的表單字段項。
請記住,您的腳本只是一個文字文件,僅當每次訪問該腳本時才會逐行解釋該文件。
以上是Php是解釋型的程式語言嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!