Есе на Куайн (програмиране)

Quine, quine (англ. quine ) - компютърна програма (специален случай на метапрограмиране), която извежда точно копие на оригиналния си текст на изхода.

Трябва да се отбележи, че програмите, които използват външни данни, не се считат за quines; т.е. четенето на програмния текст от файла, въвеждането му от клавиатурата и т.н. се изключва. Освен това „програма“, която изобщо не съдържа код (дегенериран случай), не се счита за куин. В книгата "Есета за програмисти" е формулирано по-строго условие: програмата не трябва да използва трикове, които позволяват достъп до нейния изходен код, съхраняван в паметта на товарача или интерпретатора. Следователно, quine на BASIC 10 LIST не е съвсем честен.

Терминът получи името си от американския логик и философ Уилард Ван Орман Куайн (англ. Willard van orman quine ) (1908-2000), който се занимава с задълбочено изследване на косвеното самоспоменаване (англ. непряка самореференция ).

Quine съществува във всеки език за програмиране, който има способността да извежда произволен изчисляван ред текст. Идеята на Куайн е описана за първи път от Пол Братли. Братли, Пол ) и Жан Мило (англ.). Мило, Жан ) в „Компютърни развлечения; Автоматично възпроизвеждащи се автомати, Софтуер - практика и опит, брой 2 (1972), стр. 397-400. Братли се заинтересува от самовъзпроизвеждащи се програми, след като видя първата такава програма, написана на езика за програмиране Atlas Autocode в Единбург през 60-те години, от професор и изследовател Хамиш Дево. Хамиш деуар ).