前言
如果你只是來尋求編譯器跟直譯器的解答的話,可以直接套過前言,話說,我除了是一個準備多益的人,還是一個就讀電子系的學生,在念工科的期間發現有的觀念其實只要理解就會直接在腦海扎根,而終於吃完兩天中秋烤肉的我決定要來補圖就可以發出之前寫好的稿子了!
為甚麼需要編譯器、直譯器:
在電腦的世界裡,01是他們主要的語言,這邊稱為電腦語言,而我們所打的程式碼是方便我們去寫出功能的語言,這邊稱為程式語言,當我們完成程式碼想給電腦執行,但因為電腦只知道電腦語言看不懂程式語言而需要翻譯,這個翻譯官就叫做編譯器、直譯器。
編譯器 vs. 直譯器:
這兩者都是我們與電腦之間的翻譯官,它們的差別如下:
編譯器 - 寫完程式碼後,全部一起翻譯,翻譯完後才能執行。
直譯器 - 寫完程式碼後,每翻譯一行程式就立刻執行這一行程式,然後繼續翻譯下一行再執行。
可以注意的是因為編譯是一次翻譯好再執行,直譯是邊翻譯邊執行,因此論執行時間採用直譯的程式速度比採用編譯的程式速度較慢,但是編譯程度也有缺點除錯的時間可能較久,因為寫好一段程式碼必須全部再翻譯一次執行才會知道錯在哪。
不同的程式語言擁有不同的方式,C、C++是使用編譯器,JavaScript、Python使用直譯器。
衍生
在編譯與直譯都有優缺點的情況下,發展出即時編譯的技術,第一個採用編譯語言的特性會先將全部程式碼翻譯成中介碼,第二個採用直譯語言特性到執行期再將中介碼直譯後再執行,使用該方式的程式有Java。
複習問題
(1) 解釋編譯與直譯的最主要差別與代表程式
(2) 為甚麼我們需要編譯器或直譯器
(3) 在執行期間需要較多時間的為採用編譯器語言還是直譯器語言,原因為何?
參考資料
PC icon <div>Icons made by <a href="https://www.flaticon.com/authors/smashicons" title="Smashicons">Smashicons</a> from <a href="https://www.flaticon.com/" title="Flaticon">
www.flaticon.com</a></div>
person icon <div>Icons made by <a href="https://www.freepik.com" title="Freepik">Freepik</a> from <a href="https://www.flaticon.com/" title="Flaticon">
www.flaticon.com</a></div>