Вопрос: если в первую очередь функция делает свою копию в случайном пустом пространстве памяти, а затем вместо того, чтобы вызывать саму себя, вызывает копию, является ли это все еще рекурсией? (1) Я бы сказал, да.
Является ли явное использование стека реальным способом удаления рекурсии? (2) я бы сказал нет. По сути, разве мы не подражаем тому, что происходит, когда мы используем явную рекурсию? Я считаю, что мы не можем определить рекурсию просто как «функцию, которая сама вызывает», так как я вижу рекурсию также в «коде копирования» (1) и в «явном использовании стека» (2).
Более того, я не вижу, как КТ демонстрирует, что все рекурсивные алгоритмы могут стать итеративными. Мне только кажется, что «все», обладающее «мощью» машины Тьюринга, может выражать все алгоритмы, которые это может выразить. Если машина Тьюринга не может рекурсия, мы уверены, что у каждого рекурсивного алгоритма есть свой интерактивный перевод ... Машина Тьюринга может рекурсию? По моему мнению, если это можно «реализовать» (любым способом), то можно сказать, что оно есть. Есть это? Я не знаю.
Все настоящие процессоры, которые я знаю, могут рекурсии. Честно говоря, я не понимаю, как программировать по-настоящему, не имея стека вызовов, и я думаю, что именно это делает рекурсию возможной в первую очередь.
Избегая копирования (1) и «имитированного стека» (2), мы продемонстрировали, что каждый рекурсивный алгоритм может быть на реальных машинах выражен итеративно ?! Я не вижу, где мы это продемонстрировали.