當前位置:首頁 » 編程軟體 » 語言相對編譯型安全性

語言相對編譯型安全性

發布時間: 2025-06-02 02:55:19

1. 編譯型語言和解釋型語言的區別

編譯型語言在程序執行之前,有一個單獨的編譯過程,將程序翻譯成機器語言就不用再進行翻譯了。

解釋型語言,是在運行的時候將程序翻譯成機器語言,所以運行速度相對於編C/C++ 等都是編譯型語言,而Java,C#等都是解釋型語言。

雖然Java程序在運行之前也有一個編譯過程,但是並不是將程序編譯成機器語言,而是將它編譯成位元組碼(可以理解為一個中間語言)。
在運行的時候,由JVM將位元組碼再翻譯成機器語言。
註:腳本語言一般都有相應的腳本引擎來解釋執行。 他們一般需要解釋器才能運行。JAVASCRIPT,ASP,PHP,PERL,Nuva都是腳本語言。C/C++編譯、鏈接後,可形成獨立執行的exe文件。

編譯型語言:

  • 編譯型語言最大的優勢之一就是其執行速度。用C/C++編寫的程序運行速度要比用Java編寫的相同程序快30%-70%。

  • 編譯型程序比解釋型程序消耗的內存更少。

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

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

  • 可執行的編譯型代碼要比相同的解釋型代碼大許多。例如,C/C++的.exe文件要比同樣功能的Java的.class文件大很多。

  • 編譯型程序是面向特定平台的因而是平台依賴的。

  • 編譯型程序不支持代碼中實現安全性——例如,一個編譯型的程序可以訪問內存的任何區域,並且可以對你的PC做它想做的任何事情(大部分病毒是使用編譯型語言編寫的)

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

  • 解釋型語言:

  • 解釋型語言提供了極佳的調試支持。一名Java程序員只需要幾分鍾就可以定位並修復一個「空指針異常」,因為Java運行環境不僅指明了異常的性質,而且給出了異常發生位置具體的行號和函數調用順序(著名的堆棧跟蹤信息)。這樣的便利是編譯型語言所無法提供的。

  • 另一個優勢是解釋器比編譯器容易實現

  • 解釋型語言最大的優勢之一是其平台獨立性

  • 解釋型語言也可以保證高度的安全性——這是互聯網應用迫切需要的

  • 中間語言代碼的大小比編譯型可執行代碼小很多

  • 平台獨立性,以及嚴密的安全性是使解釋型語言成為適合互聯網和Web應用的理想語言的2個最重要的因素。

  • 解釋型語言存在一些嚴重的缺點。解釋型應用佔用更多的內存和CPU資源。這是由於,為了運行解釋型語言編寫的程序,相關的解釋器必須首先運行。解釋器是復雜的,智能的,大量消耗資源的程序並且它們會佔用很多CPU周期和內存。

  • 由於解釋型應用的decode-fetch-execute(解碼-抓取-執行)的周期,它們比編譯型程序慢很多。

  • 解釋器也會做很多代碼優化,運行時安全性檢查;這些額外的步驟佔用了更多的資源並進一步降低了應用的運行速度。

熱點內容
ftp伺服器需要哪些服務 發布:2025-08-01 07:57:06 瀏覽:892
古文訪問 發布:2025-08-01 07:11:01 瀏覽:510
免費cp源碼 發布:2025-08-01 07:10:59 瀏覽:759
realpathphp 發布:2025-08-01 07:06:05 瀏覽:376
優酷演算法 發布:2025-08-01 07:03:10 瀏覽:47
凌渡汽車有哪些配置 發布:2025-08-01 06:50:30 瀏覽:352
pythonlist指定元素 發布:2025-08-01 06:50:26 瀏覽:403
震旦266網路ftp掃描設置 發布:2025-08-01 06:48:09 瀏覽:911
錢龍公式源碼 發布:2025-08-01 06:36:18 瀏覽:419
面怎麼演算法 發布:2025-08-01 06:35:01 瀏覽:818