В чем «трюк» с написанием Куайна?

Я читал классическую статью Кена Томпсона «Размышления о доверии» , в котором он предлагает пользователям написать Куайн в качестве введения к его аргументам (настоятельно рекомендуется прочитать).

Куайн - это компьютерная программа, которая не принимает никаких вводных данных и создает собственную копию исходный код в качестве единственного вывода.

Наивный подход состоит в том, чтобы просто сказать:

print "[insert this program's source here]"

Но быстро понимаешь, что это невозможно. Я закончил тем, что написал один , используя Python, но до сих пор не могу объяснить «трюк». Я ищу отличное объяснение того, почему Куайнс возможен.

22
задан Fritz 7 November 2016 в 21:27
поделиться