[程式設計的壹貳參肆] 編譯語言和直譯語言

Phoebe Huang
Jul 14, 2020

--

常聽到直譯語言和編譯語言,那到底有哪些是直譯語言、哪些又是編譯語言呢?他們兩者又有什麼差別呢?

直譯語言(Interprete Language)顧名思義就是在執行階段才去編譯程式語言,換成機器語言,像是javascript, php, html, python等等…..,也因為它不用產生執行檔,每一次執行時都要經過翻譯的過程才能執行,執行時間也比編譯語言來的慢

而所謂編譯語言(Compile Language)指:

  1. 原本的程式碼(source code )需要經過編譯器(Compiler)進行編譯(Compile)的動作將程式碼轉換成組合語言(Assemble Language)
  2. 經過組譯器(Assembler)將組合語言轉換成機器語言(Machine Language),產生出目標檔(Object file)
  3. 最後因為我們可能有很多的目標檔,透過連結(Link)的動作將目標檔組合成一個我們平常開啟的執行檔(Execute file),像是C/C++、Swift、JAVA

下面我整理出了一個動畫大家可以參考:

編譯流程

以下是他們除了編譯執行流程以外的差異:

● 直譯語言開發較快,寫完後可立即看到成果;編譯語言因還要經過以及開發的函式庫在執行時也需要被連結,因此開發較為緩慢

● 編譯語言做後會產生出執行檔,而執行檔是可以獨立執行的;直譯器執行值必須要有一個合適的環境,像是javascript就需要在瀏覽器才能執行

[QA]

● 舉出三個直譯語言
● 舉出三個編譯語言
● 直譯語言的優點、缺點分別是什麼?
● 編譯語言的優點、缺點分別是什麼?

以上簡單幫直譯語言及編譯語言做個筆記,也是以防以後忘記,分享給大家

喜歡我的文章的人也記得幫我按個拍手、分享,覺得很不錯的可以幫我拍個50下!
也要快點追蹤我的 FB粉絲專頁 — 飛比尋常的程式設計世界 ,不會太頻繁出現在你的塗鴉牆騷擾你,好文章生產需要一點時間,有錯誤或想討論的都歡迎留言給我唷!那就下次見拉!

--

--

Phoebe Huang
Phoebe Huang

Written by Phoebe Huang

A software engineer from Taiwan, use free time to learn more about computer science.

No responses yet