【发布时间】:2009-04-04 12:49:06
【问题描述】:
语言是否必须满足任何条件才能为该语言编写元循环评估器?我可以为 BASIC 或 Python 写一个吗?
【问题讨论】:
标签: programming-languages metaprogramming
语言是否必须满足任何条件才能为该语言编写元循环评估器?我可以为 BASIC 或 Python 写一个吗?
【问题讨论】:
标签: programming-languages metaprogramming
自我解释器和元循环解释器的区别在于后者根据特性本身重述语言特性,而不是实际实现它们。 (换句话说,循环定义;因此得名)。它们依赖于宿主环境来赋予特征意义。
鉴于此,允许为其编写元循环解释器的语言的关键特性之一是homoiconicity,也就是说,程序的主要表示是语言本身的原始数据结构。 Lisp 展示了这一点,因为程序本身是用列表表示的。
【讨论】:
您可以为任何图灵完备的语言编写它,但是,您的里程可能会有所不同。
对于 Python,它已经完成(PyPy)。可以在Wikipedia article 找到已完成的语言列表。
【讨论】: