Дуглас Хофштадтер описывает язык программирования, называемый BlooP, в своей книге «Гёдель, Эшер, Бах: вечная золотая коса».
Мне неясно, требуют ли переменные cell постоянных индексов или допускается косвенное указание.
Четыре примера, показанные в книге, показывают константы.Например:
CELL(0) ⇐ 2;
Неясно, разрешено ли это:
CELL(CELL(0)) ⇐ 2;
Вопрос важен для понимания главы.Если косвенное обращение недопустимо, то это потому, что это может нанести ущерб цели языка, который намеренно ограничен, так что он может выражать только примитивно-рекурсивные функции .
Еще один способ задать вопрос: «Превращает ли поддержка косвенной адресации BlooP в FlooP, что может выражать общие рекурсивные функции?»
Обратный вопрос: «Будет ли отсутствие косвенной адресации из BlooP мешать ему писать сортировки или тьюринги?машины, обе из которых нуждаются в косвенной адресации? "