編譯執行和解釋執行的區別

來源:互聯網
上載者:User

A、解釋程式  

  所謂解釋程式是進階語言翻譯程式的一種,它將源語言(如BASIC)書寫的來源程式作為輸入,解釋一句後就提交電腦執行一句,並不形成目標程式。就像外語翻譯中的“口譯”一樣,說一句翻一句,不產生全文的翻譯文本。

  這種工作方式非常適合於人通過終端裝置與電腦會話,如在終端上打一條命令或語句,解釋程式就立即將此語句解釋成一條或幾條指令並提交硬體立即執行且將執行結果反映到終端,從終端把命令打入後,就能立即得到計算結果。

  這的確是很方便的,很適合於一些小型機的計算問題。但解釋程式執行速度很慢,例如來源程式中出現迴圈,則解釋程式也重複地解釋並提交執行這一組語句,這就造成很大浪費。

B、編譯器

  這是一類很重要的語言處理常式,它把進階語言(如FORTRAN、COBOL、Pascal、C等)來源程式作為輸入,進行翻譯轉換,產生出機器語言的目標程式,然後再讓電腦去執行這個目標程式,得到計算結果。

  編譯器工作時,先分析,後綜合,從而得到目標程式。所謂分析,是指詞法分析和文法分析;所謂綜合是指代碼最佳化,儲存分配和代碼產生。為了完成這些分析綜合任務,編譯器採用對來源程式進行多次掃描的辦法,每次掃描集中完成一項或幾項任務,也有一項任務分散到幾次掃描去完成的。

  下面舉一個四遍掃描的例子:

  第一遍掃描做詞法分析;第二遍掃描做文法分析;第三遍掃描做代碼最佳化和儲存分配;第四遍掃描做代碼產生。

 

  值得一提的是,大多數的編譯器直接產生機器語言的目標代碼,形成可執行檔目標檔案,但也有的編譯器則先產生組合語言一級的符號代碼檔案,然後再調用組譯工具進行翻譯加工處理,最後產生可執行檔機器語言目標檔案。

  在實際應用中,對於需要經常使用的有大量計算的大型題目,採用招待速度較快的編譯型的進階語言較好,雖然編譯過程本身較為複雜,但一旦形成目標檔案,以後可多次使用。相反,對於小型題目或計算簡單不太費機時的題目,則多選用解釋型的會話式進階語言,如BASIC,這樣可以大大縮短編程及調試的時間。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.