※ [本文轉錄自 C_and_CPP 看板 #1KQisME6 ]
作者: littleshan (我正在想要換什麼) 看板: C_and_CPP
標題: Re: [理工] 程式語言觀念
時間: Tue Nov 18 12:39:47 2014
※ 引述《gauss760220 (宅哥)》之銘言:
: ※ [本文轉錄自 Grad-ProbAsk 看板 #1KQe7Yfy ]
: 作者: gauss760220 (宅哥) 看板: Grad-ProbAsk
: 標題: [理工] 程式語言觀念
: 時間: Tue Nov 18 07:16:47 2014
: 國考裡面有個題目
: "為何Interpreter比Compiler更容易加入新的程式語言觀念?"
: 請問這題該怎麼回答?
這個命題根本就是錯的。
Interpreter 是給一段程式碼,它直接跑出結果送給你。
Compiler 是給一段程式碼,它翻譯成另一個語言、會跑出同樣結果的程式碼。
它們的差別只有在最後產出結果的地方不同,
而前面的 parsing 與 semantic check 則完全相同。
對程式語言來說,前面的部份才是關鍵。
現在的語言早就沒在分什麼 interpreter 與 compiler,
都嘛是做在一起,像 python / ruby / haskell / ocaml,
它們都同時具備 compiler 與 interpreter,
也都有很豐富的語言特性。
就像「compiler產生的程式碼跑得比interpreter快」之類的命題,
這些其實都是以訛傳訛的錯誤印象。
compiler 與 interpreter 差別就只是一個做翻譯、另一個給結果,
沒有道理哪個比較容易修改、或哪個執行起來比較快。