相信學計算機的人都應該學過不止一種程式語言,很多時候,很可能是兩種,或者三種,甚至有人4種5種,當然,大部分人都知道它們是編譯型的或者是解釋型的,但是有多少人去了解過他們各自的優缺點?我也正如那大部分人一樣,知道這是什麼型別的語言,不過也很少去真正了解過它們!
那麼什麼是解釋型語言?什麼是編譯型語言?
大家都知道,計算機是不能直接理解高階語言的,只能直接理解機器語言,所以必須要把高階語言翻譯成機器語言,計算機才能執行高階語言編寫的程式,而翻譯的方式有兩種,一種編譯,另一種就是解釋,兩者翻譯的時間不同!
編譯型語言寫的程式在執行之前,需要乙個專門的編譯過程,把程式編譯成機器語言的檔案,比如將hello.c檔案進行預處理,編譯,彙編和鏈結,最終生成可執行**檔案,這樣以後再次執行的時候,就可以直接使用編譯的結果(即exe檔案)!
解釋型語言不需要編譯,省了道工序,解釋型語言是在執行程式的時候才翻譯的,需要乙個專門的直譯器能夠執行解釋型語言寫的程式,每個語句都是執行的時候才進行翻譯的!
編譯型語言的優點:
1:因為可以直接使用編譯的結果而不需要再次翻譯,所以執行的效率是比較高的!
2:編譯程式將源程式翻譯成目標程式後儲存在另乙個檔案中,該目標程式可以脫離編譯程式直接在計算機上多次使用,大部分軟體產品都是以目標程式形勢發行給使用者的,不僅便於直接執行,而且又使得他人難以盜用期中的技術!
編譯型語言的缺點:
1:編譯執行的語言因為要直接同cpu的指令集打交道,具有很強的指令依賴性和系統依賴性!
2:編譯後的程式是由機器語言指令構成的,但是使用不同硬體平台的計算機,它們的機器語言是不同的,使得便宜過的程式不 能順利從乙個計算機平台往另外乙個平台上移植,因此在不同的平台上往往需要重新編譯甚至重寫程式,這將會耗費大量的人力物力財力!
解釋型語言的優點:
1:一般情況下,只要有相應版本的語言直譯器,解釋型語言所寫的程式可以幾乎不做任何修改地移植到其他平台上去,這相對於編譯型語言來說,是個極大的優勢!
2:解釋型語言所寫的程式是逐行進行翻譯執行命令的,因此當語句出現語法問題的時候,可以立即引起程式猿的注意,而程式猿在程式開發期間就能進行校正!
解釋型語言的缺點:
1:解釋型語言的實現中,翻譯器並不產生目標機器**,而是產生易於執行的中間**,但是這種中間**與機器**不同,中間**的解釋是由軟體支援的,不能直接使用硬體,軟體直譯器通常會導致執行效率較低,並且每執行一次就得再翻譯一次,不能像編譯型語言那樣,一次編譯,任意次使用,因而效率方便沒有編譯型的高!
簡述解釋型和編譯型程式語言
解釋型語言編寫的程式不需要編譯,在執行的時候,專門有乙個直譯器能夠將vb語言翻譯成機器語言,每個語句都是執行的時候才翻譯。這樣解釋型語言每執行一次就要翻譯一次,效率比較低。用編譯型語言寫的程式執行之前,需要乙個專門的編譯過程,通過編譯系統,把源高階程式編譯成為機器語言檔案,翻譯只做了一次,執行時不需...
編譯型語言與解釋型語言
計算機是不能理解高階語言的,更不能直接執行高階語言,它只能直接理解機器語言,所以使用任何高階語言編寫的程式若想被計算機執行,都必須將其轉換成計算機語言,也就是機器碼。而這種轉換的方式有兩種 1 編譯 2 解釋 由此高階語言也分為編譯型語言和解釋型語言。一 編譯型語言 使用專門的編譯器,針對特定的平台...
編譯型語言與解釋型語言
計算機是不能理解高階語言的,更不能直接執行高階語言,它只能直接理解機器語言,所以使用任何高階語言編寫的程式若想被計算機執行,都必須將其轉換成計算機語言,也就是機器碼。計算機是不能理解高階語言的,更不能直接執行高階語言,它只能直接理解機器語言,所以使用任何高階語言編寫的程式若想被計算機執行,都必須將其...