quine



Предыдущая | Следующая

quine /kwi:n/ [в честь одного специалиста в области логики – Уилларда В. Ку-ина (Quine), впервые в этом смысле quine употребил Дуглас Ховстедтер], сущ. Программа, которая воспроизводит копию своего собственного исходного текста. Разработка наиболее короткой quineна данном языке программирования -широко распространенное среди хакеров развлечение. Вот один из классических примеров:((lambda (x) (list х (list (quote quote) x))) (quote (lambda (x) (list x (list (quote quote) x)))) Это программа на LISP или Scheme. Сравнительно просто написать quines на таких языках, как Postscript, в котором программа непосредственно представляет собой набор данных; значительно труднее (а потому и интереснее) написать их на таких языках, как Си, где вышеописанные свойства Postscripta отсутствуют. Вот классическая quine на Си для ASCII машин: . char*f='char*f =e/,cy,s'/,c;main(){ printf (f,34,f ,34,10) ;Г/.см; main(){printf(f,34,f,34,10);} Некоторые малоизвестные программы, принимавшие участие в соревновании Obfuscated С Contest, представляли из себя quines, самовоспроизводившиеся достаточно экзотическим образом. quote chapter and verse (цитировать главу и стих; обычно так говорят о цитировании библии), гл. Приводить соответствующую цитату из Библии (см. bible). «Я нисколько не боюсь, что эта процедура при такой последовательности параметров будет работать неправильно; не веришь – могу процитировать главу и стих из описания реализации.'