道格拉斯·霍夫施塔特(Douglas Hofstadter)在他的书《哥德尔,埃舍尔,巴赫:永恒的金辫子》中描述了一种称为BlooP的编程语言。
我不清楚 cell 变量是否需要常量索引或是否允许间接访问。
本书中显示的四个示例显示了常量。例如:
CELL(0) ⇐ 2;
目前尚不清楚是否可以这样做:
CELL(CELL(0)) ⇐ 2;
该问题对于理解本章很重要。如果不允许间接访问,那是因为它会破坏有意限制的语言的目标,因此它只能表达primitive recursive functions。
问这个问题的另一种方式是:“对间接寻址的支持会把BlooP变成可以表达一般递归功能的FlooP吗?”
问题的反面是:“ BlooP缺少间接寻址是否会阻止它编写需要间接寻址的排序或图灵机?”