作者suhorng ( )
看板PLT
标题Fw: [理工] 程式语言观念
时间Wed Nov 19 12:24:21 2014
※ [本文转录自 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 差别就只是一个做翻译、另一个给结果,
没有道理哪个比较容易修改、或哪个执行起来比较快。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.250.32.97
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1416285590.A.386.html
1F:→ carylorrk: interpreter 的特性通常还包括遇到才翻译并执行,所以 11/18 13:08
2F:→ carylorrk: JIT 通常算是 compilation,从 QEMU 的 TCI/TCG 也可以 11/18 13:09
3F:→ carylorrk: 看得出来并不是执行会顺便跑出结果的都被称作是 11/18 13:10
4F:→ carylorrk: interpreter。不过这之间的差异越来越小是真的。大多数 11/18 13:11
5F:→ carylorrk: interpreter 越来越复杂,像 python 也有很多实作往 11/18 13:16
6F:→ carylorrk: JIT 靠拢(虽然支援度都还有待加强。) 11/18 13:17
7F:推 carylorrk: 回到原本的问题,interpreter 比较简单在很多时候是对 11/18 14:00
8F:→ carylorrk: 的。 compiler 通常需要处理比较多 state 的问题,而 11/18 14:01
9F:→ carylorrk: interpreter 可以在 dispatcher 的地方处理而简化问题 11/18 14:03
10F:→ carylorrk: 不过当然现在成熟的语言有太多影响的因子在,实在很难 11/18 14:19
11F:→ carylorrk: 一概而论。(跟 target 也有关系) 11/18 14:20
12F:推 suhorng: 请问可以借转吗 11/18 23:05
13F:→ littleshan: 请转 11/19 12:21
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 转录者: suhorng (140.112.16.135), 11/19/2014 12:24:21
14F:推 NilPtr: 分享一下之前我写到的题目,请问Java是? (A)应用软体 12/23 23:42
15F:→ NilPtr: (B)系统软体 (C)程式语言 (D)多媒体软体 。解答竟然是A... 12/23 23:44
16F:→ NilPtr: 是说我有很多朋友看不起跑在直译器的程式语言,被嫌慢 12/23 23:46
17F:→ NilPtr: 只能摇头跟他们说有时候程式执行速度没那麽重要= = 12/23 23:47
18F:→ suhorng: 这题会不会太无言了XDDD 12/24 21:04
19F:→ suhorng: 总觉得直译与编译的界线有点模糊 12/24 21:04
20F:推 kidder: 所以是直译跟编译的差别呦...其实直译器真的很少看到耶! 08/26 22:33