元循环评估者的条件

时间:2009-04-04 12:49:06

标签: programming-languages metaprogramming

是否有语言必须满足的条件,以便可以为该语言编写元循环评估器?我可以为BASIC或Python编写一个吗?

2 个答案:

答案 0 :(得分:3)

引用Reg Braithwaite

  

自我解释者和元循环解释者之间的区别在于后者根据特征本身重述语言特征,而不是实际实现它们。 (循环定义,换句话说;因此名称)。它们依赖于它们的主机环境来赋予它们特征的意义。

鉴于此,允许为其编写元循环解释器的语言的一个关键特征是homoiconicity,即,程序的主要表示形式是语言本身的原始数据结构。 。 Lisp通过程序本身表示为列表来展示这一点。

答案 1 :(得分:0)

可以为任何图灵完成的语言编写它,但是,你的里程可能会有所不同。

对于Python,它已经完成(PyPy)。可以在Wikipedia article找到已完成语言的列表。