Квайны
Эта статья находится в разработке!
| Определение: |
| Квайном (куайном, quine) называется программа, которая выводит свой исходный код. При этом, программа не должна использовать внешние данные (например, читать файл со своим исходным кодом). |
Происхождение названия
Название "квайн" было предложено Дугласом Хофштадтером, в его известной книге "Гёдель, Эшер, Бах: Эта бесконечная гирлянда" в честь американского логика и философа Уилларда Ван Ормана Квайна, который углублённо изучал явление косвенного самоупоминания. в частности, это явление можно проиллюстрировать следующим парадоксальным утверждением, известном как парадокс Квайна:
| Теорема (парадокс Квайна): |
"Становится ложным, когда добавляется к собственной цитате" становится ложным, когда добавляется к собственной цитате. |
Доказательство существования
| Теорема (о существовании квайнов): |
На любом языке программирования можно написать квайн |
| Доказательство: |
| Рассмотрим функцию , которая по данной программе печатает её исходный код. Очевидно, она вычислима. По теореме о неподвижной точкесуществует такая программа , что и ведут себя одинаково, то есть печатают свой код. Таким образом, печатает код , т.е. является квайном. |