代码之家  ›  专栏  ›  技术社区  ›  Jon Deaton

如何使用元循环计算器引导Lisp解释器

  •  2
  • Jon Deaton  · 技术社区  · 8 年前

    我正在用纯C实现一个Lisp解释器,在从C转换到Lisp时遇到了问题。

    跟随彼得·诺维格的步伐 blog post

    described 作者:Paul Grahm,并理解其中的元循环评估器。我在编写C代码部分时遇到了麻烦(

    据我所知,有了元循环计算器,就可以在Lisp本身中编写评估Lisp过程的语义。因此,我想把程序的这一部分留在lisp中,然而,很明显,在某些时候,我需要编写C代码,将原语或过程实际应用到lisp数据结构中。然而,当我编写这段代码时,我发现自己编写的逻辑与元循环计算器itslef相同,只是C版本。

    eval apply 在C语言中(正如Peter Norvig在Python中所做的那样),或者是否有某种方法来引导lisp解释器,其中 评估 申请

    1 回复  |  直到 8 年前
        1
  •  2
  •   Sylwester    8 年前

    这是不可能实现的 eval apply 在lisp中,如果您使用C语言制作解释器,原因是您需要某种方法来解释解释器,并且您将遇到引导问题。

    quote 可以对其求值,然后让eval调用函数。所有基元函数都有一个标记+函数指针,然后 将有更少的事情要做,更容易扩展。

    你说得对 评估 brainfuck project