close
article_main_img

文、意如 老師

 

 

地基打得穩,才有辦法走更遠的路。
 

我們先認識一個詞Compile,指的是編譯,常常聽到比較資深的工程師會說Compile一下,這是什麼意思呢?

 

簡單的來說編譯就是”翻譯一下程式碼”,為什麼程式碼要翻譯呢?

這個就是今天要介紹的主題。

 

現在訪間各式各樣程式編輯器已經做得太好、太方便,只要寫好程式碼,按執行鍵,即可馬上執行程式碼,導致很多工程師已經忘了最基礎的怎麼編譯(Compile)程式,或者根本不知道Compile到底是什麼,所以本篇文章想跟大家聊聊什麼是編譯(Compile)。

 







 

 

什麼是低階語言(機器語言)、高階語言?

 

電腦不認識字、只認得數字0、1,所以電腦讀的語言叫做機器語言,也叫低階語言。下面這張圖一組一組的就是指令:

 

 

 

例如:0101,代表一種功能,0110又代表另一種功能,每一組都代表各自的功能,光是4個數字就可以有多種變化。

 

例如:0000、0001、0010、0101、1011等...

 

而我們寫的程式語言,就是人類才看得懂的叫做(高階語言),例如Java、PHP、Python等等。

 

 

 

所以我們寫好的程式碼,需要透過電腦來執行,但是電腦只認得0和1,所以我們會需要一個溝通的橋樑,一個翻譯官,把高階語言翻譯成電腦讀得懂的低階語言,好讓電腦執行我們的程式,這個就是編譯,所以不管是什麼程式語言都會需要編譯完後,才能執行。

 

 

 

編譯器跟直譯器又有什麼差別?

 

這兩者都是翻譯官,但它們的差別在於編譯器是寫完程式碼後,最後全部一起翻譯,翻譯完後才能執行。

 

而直譯器是一行一行直接翻譯執行。每翻譯一行程式敘述就立刻執行,然後再翻譯下一行,再執行,所以直譯器可即時翻譯、執行。

 

 



...


 

什麼程式語言是用編譯器?

 

像是C、C++、C#、Java等,這些都是屬於直譯器,寫完程式需要先編譯,編譯好後會多一個類似.class的檔案,這個就是機器語言,最後才能去執行程式。

 

所以以Java來講寫好程式後最少會有兩個檔案(你寫的程式碼java檔、跟編譯過的.class檔)。


 

什麼程式語言是用直譯器?

 

像是最多人一定會寫的JavaScript、還有PHP、Ruby、Python這些都是使用直譯器,我們在執行程式時,你馬上就看到執行結果,並不沒有編譯,而是直譯器本身是即時翻譯,所以你不需要再特別的去編譯它。

 

 

編譯器比較快還是直譯器比較快?

 

編譯器它是整篇一起翻譯後再執行、而直譯器是邊翻譯邊執行所以會比編譯器來的慢。

 

編譯程式碼,是工程師最基礎的功夫,這邊也建議剛開始學程式語言的初學者一定要學會編譯程式後,再去挑選比較好的編輯器,地基打得穩,才有辦法走更遠的路。

 

 

下一篇文章-將跟大家分享工程師都在用什麼編輯器來寫程式。


 

...


 

arrow
arrow

    聯成電腦 發表在 痞客邦 留言(0) 人氣()