• 程序語言,編譯?解釋?

    0
    程序員 C/C++ Go Microsoft 6788 次瀏覽

     相信學計算機的人都應該學過不止一種程序語言,很多時候,很可能是兩種,或者三種,甚至有人4種5種,當然,大部分人都知道它們是編譯型的或者是解釋型的,但是有多少人去了解過他們各自的優缺點?我也正如那大部分人一樣,知道這是什么類型的語言,不過也很少去真正了解過它們!

        那么什么是解釋型語言?什么是編譯型語言?

        大家都知道,計算機是不能直接理解高級語言的,只能直接理解機器語言,所以必須要把高級語言翻譯成機器語言,計算機才能執行高級語言編寫的程序,而翻譯的方式有兩種,一種編譯,另一種就是解釋,兩者翻譯的時間不同!

        編譯型語言寫的程序在執行之前,需要一個專門的編譯過程,把程序編譯成機器語言的文件,比如將hello.c文件進行預處理,編譯,匯編和鏈接,最終生成可執行代碼文件,這樣以后再次運行的時候,就可以直接使用編譯的結果(即exe文件)!

        解釋型語言不需要編譯,省了道工序,解釋型語言是在運行程序的時候才翻譯的,需要一個專門的解釋器能夠執行解釋型語言寫的程序,每個語句都是執行的時候才進行翻譯的!

      
    編譯型語言的優點:

            1:因為可以直接使用編譯的結果而不需要再次翻譯,所以執行的效率是比較高的!

            2:編譯程序將源程序翻譯成目標程序后保存在另一個文件中,該目標程序可以脫離編譯程序直接在計算機上多次使用,大部分軟件產品都是以目標程序形勢發行給用戶的,不僅便于直接執行,而且又使得他人難以盜用期中的技術!

    編譯型語言的缺點:

            1:編譯執行的語言因為要直接同CPU的指令集打交道,具有很強的指令依賴性和系統依賴性!

            2:編譯后的程序是由機器語言指令構成的,但是使用不同硬件平臺的計算機,它們的機器語言是不同的,使得便宜過的程序不 能順利從一個計算機平臺往另外一個平臺上移植,因此在不同的平臺上往往需要重新編譯甚至重寫程序,這將會耗費大量的人力物力財力!

    解釋型語言的優點:

            1:一般情況下,只要有相應版本的語言解釋器,解釋型語言所寫的程序可以幾乎不做任何修改地移植到其他平臺上去,這相對于編譯型語言來說,是個極大的優勢!

            2:解釋型語言所寫的程序是逐行進行翻譯執行命令的,因此當語句出現語法問題的時候,可以立即引起程序猿的注意,而程序猿在程序開發期間就能進行校正!

    解釋型語言的缺點:

             1:解釋型語言的實現中,翻譯器并不產生目標機器代碼,而是產生易于執行的中間代碼,但是這種中間代碼與機器代碼不同,中間代碼的解釋是由軟件支持的,不能直接使用硬件,軟件解釋器通常會導致執行效率較低,并且每執行一次就得再翻譯一次,不能像編譯型語言那樣,一次編譯,任意次使用,因而效率方便沒有編譯型的高!

    原文地址:http://www.gbtags.com/gb/share/6308.htm

    相似問題

    相關經驗

    相關資訊

    相關文檔

  • sesese色