可讀性和編譯後的效率
⑴ 編譯後的程序比邊解釋邊執行的程序的運行速度快嗎為什麼
程序的編譯是指將人可以理解的代碼(如C的源代碼)段編譯成機器指令碼(二級制指令),也就是處理堆棧、處理器、匯流排的指令,交由計算機自動執行。解釋型語言是在需要執行時臨時編譯運行,執行時多了編譯的過程,自然就要慢的多了。
比較特殊的是java,javac命令編譯的結果雖然也是二進制文件,但實際也不是機器指令,而是優化後的代碼,最後的執行是通過java虛擬機再次編譯後執行。所以效率介於編譯型和解釋型之間。
目前java的執行速度已經有了大幅度的提升,但要想趕上或超越C 或者匯編,理論上是不現實的。
⑵ C語言編寫程序的優點有哪些呢
C語言能夠存在並發展至今,其生命力之強可見一斑。這其中一定是有著某些不可替代的優點,那麼C語言編寫程序的優點都有哪些呢?為了方便讀者理解,下面對C語言的每條特點進行詳細的解說。
(1)程序結構簡潔、緊湊、規整,表達式簡練、使用靈活。
(2)編寫的程序可讀性強,編譯效率高。
(3)具有豐富的運算符,多達34種。豐富的數據類型與豐富的運算符相結合,使C語言具有表達靈活和效率高等特點。
(4)數據類型種類繁多。C語言具有5種基本的數據類型和多種構造數據類型以及復合的導出類型,同時還提供了與地址密切相關的指針機器運算符。指針可以指向各種類型的簡單變數、數組、結構和聯合,乃至函數等。此外,C語言還允許用戶自己定義數據類型。
(5)是一種結構化程序設計語言,特別適合大型程序的模塊化設計。C語言具有編寫結構化程序所必需的基本流程式控制制語句,C語言程序是由函數集合構成的,函數各自獨立,並且作為模塊化設計的基本單位。
說明:
C語言的源文件,可以分割成多個源程序,分別進行編譯,然後連接起來構成可知性的目標文件,為開發大型軟體提供了極大的方便。C語言還提供了多種存儲屬性,使數據可以按其需要在相應的作用域起作用,從而提高了程序的.可靠性。
(6)語法限制不太嚴格,程序設計自由度大。例如,對數組下標越界不作檢查,由程序編寫者自己保證程序的正確。一般的高級語言語法檢查比較嚴,能檢測出幾乎所有的語法錯誤,而C語言允許程序編寫者有較大的自由度,因此放寬了語法的檢查。程序員應當仔細檢查程序,保證其正確,而不要過分依賴C語言編譯程序去查錯。
(7)允許直接訪問物理地址,能進行位(bit)操作,能實現匯編語言的大部分功能,可以直接對硬體進行操作。因此,C語言既具有高級語言的功能,又兼容低級語言的許多功能,可用來編寫系統軟體。
(8)生成的目標代碼質量高,程序執行效率高。它一般只比匯編程序生成的目標代碼率低10%~20%。
(9)具有較高的可移植性。它的語句基本上無須修改就能用於各種型號的計算機和各種操作系統。
C語言是處於匯編語言和高級語言之間的一種中間型程序設計語言,常被稱為中級語言。它既有高級語言的基本特點,又具有匯編語言面向硬體和系統,可以直接訪問硬體的功能。
C語言的這些優點,讀者僅通過這里的介紹還不能深刻理解和體會,待對C語言有了一定的了解之後再回顧一下,就會體會到這些優點了。但由於C語言的限制少、靈活性大、功能強,所以對程序員有較高的要求。在使用C語言進行編程時,需要有足夠的細心和耐心。