乍看之下,它们看起来非常相似。他们是同义词吗?
解释意味着评估,但并非所有评估都必须是解释。
解释器是将程序作为输入并对其求值的函数或程序。口译通常是指“与口译人员的评估”。
另一方面,评估并不总是意味着解释。评估可以通过执行已编译的程序,通过JIT编译器运行,迭代小步缩减或除解释之外可以想到的任何其他方法来进行。
评估是为计算提供答案的过程的名称。
解释是实现评估的一种方式(解释器是实现eval
函数的函数)。
编译与解释相同(它执行与解释程序几乎相同的步骤),但是它会预先计算有关代码的静态结果,并为虚拟机(方案的SECD机器)生成字节码。虚拟机是实现评估等的另一种方式。
还有其他实施评估的方法。指称语义是一种方法(也是最简单的一种,尽管它涵盖了所有主要概念)。
实现评估的另一种方法是通过redex。
要了解更多,您可以查看大学教授的SICP类型的课程。