Engineering a Compiler 书中的说法是“ An interpreter takes as input an executable specification and produces as output the result of executing the specification.”,重要的是产生结果。
书中举例将 PostScript 转换成图像的东西是解释器。从这个角度来看,给定 html 和 css ,浏览器的排版过程也可以看作是解释。
libook
2016-02-01 23:36:38 +08:00
我上学的时候理解的是:编译器就是把源代码转换成机器码的软件,运行的时候直接运行机器码就可以了,不再依赖编译器;解释器就是一个懂得源代码的软件,运行这个软件然后直接让它按照源代码做事,每一个源代码指令编译器都懂得是什么具体的操作,并能立即执行。 如果拿人来做比喻,就是:小 A 跟编译器说想吃螃蟹,于是编译器教会了小 A 如何剥螃蟹;小 B 跟解释器说他也想吃螃蟹,解释器就帮他剥好了螃蟹。这大概就是编译器和解释器的区别吧。 当然实际的编译器和解释器的原理比这要复杂得多,你若真想究其毫厘还是要专门拿几个编译器和解释器来研究一下。