а вот в качестве у надо передавать 'код+параметры'
Да с чего Вы это взяли? Программе
![$A$ $A$](https://dxdy-02.korotkov.co.uk/f/5/3/d/53d147e7f3fe6e47ee05b88b166bd3f682.png)
дважды передаётся код некой программы
![$M_x$ $M_x$](https://dxdy-04.korotkov.co.uk/f/3/7/4/374589387340c66ebedfe73d49d576e882.png)
:
![$A(x,x)$ $A(x,x)$](https://dxdy-03.korotkov.co.uk/f/e/a/c/eac42ab12ed97869e0e6ad1f64210b6e82.png)
. Т.е. мы спрашиваем у программы
![$A$ $A$](https://dxdy-02.korotkov.co.uk/f/5/3/d/53d147e7f3fe6e47ee05b88b166bd3f682.png)
, остановится ли программа
![$M_x$ $M_x$](https://dxdy-04.korotkov.co.uk/f/3/7/4/374589387340c66ebedfe73d49d576e882.png)
, если ей в качестве параметра передать её собственный код. Имеем право спросить?
Еще раз повторяю, здесь происходит подмена понятий: код программы и код программы запускаемый на выполнение (или анализ).
Анализатор использует параметр X в качестве кода программы, запускаемого на выполнение и в таком статусе ему передается X.
Но запускаемому коду требуется параметр (иначе результат не определен)
В качестве параметра передается используется второй параметр Y.
Вот тут и происходит подмена понятий.
Вместо Y подставляется точно такой же код программы - а ведь он не полон, поскольку у него ,в свою очередь, не был определен передаваемый параметр.
Проще это понять через рекурсию.
Организуется рекурсия - программа вызывает сама себя - но у каждой нормальной рекурсии должен быть самый первый вызов , когда программе передаются какие-то константы - здесь же самый первый вызов ,разными манипуляциями с переименованиями, подменяется ссылкой на результат всей рекурсии.
Таким образом у рекурсивной программы отсутствуют входящие параметры и именно поэтому код становится "невычислимым" - не заданы стартовые условия, либо код зацикливается и вообще отсутствует самый первый вызов.
P.S. Так готовы ли Вы признать, что
![$\sqrt{2}$ $\sqrt{2}$](https://dxdy-04.korotkov.co.uk/f/7/1/4/71486f265f83bc1e3d2b6f67704bcc2382.png)
является "не рациональным числом"?
Не рациональным оно является , но специальный класс чисел на таком определении вводить некорректно.
Надо всегда точно задавать свойства элементов множества, а не "не являются членами другого множества" - такое определение парадоксально.
-- Чт янв 27, 2011 15:28:14 --Как по-вашему, может ли, хотя бы теоретически, существовать программа stops, удовлетворяющая следующему условию: вызов stops program argument приводит к выводу на экран символа '1', если в тех же условиях вызов program argument возвращает управление, и к выводу символа '0', если в тех же условиях вызов program argument будет работать бесконечно долго? Форс-мажорными обстоятельствами типа падения метеорита на компьютер пренебрегаем.
Конечно может ...
существовать программа которая либо выводит 1 и завершает работу.
Либо выводит 0 и зависает.
Но только она делает что либо одно.
-- Чт янв 27, 2011 15:31:11 --2) Что именно требовалось доказать?
То что ваш код анализирует не самого себя, а совершенно посторонний код, лишь случайно совпадающий с тем ,который выполняется.
И случайно выдающий верный результат.