Куайн (програмиране) Уикипедия

Quine (quine, Английски quine) е компютърна програма, която извежда точно копие на оригиналния си текст. В същото време програми, които използват външни данни (четене на програмен текст от файл, въвеждане от клавиатурата и т.н.), не се считат за quines. В допълнение, "програма", която изобщо не съдържа код, не се счита за куин (дегенериран случай).

В книгата "Изследвания за програмисти" от Чарлз Уедъръл е формулирано по-строго условие: програмата не трябва да използва техники, които позволяват достъп до нейния изходен код, съхраняван в паметта на товарача или интерпретатора. Следователно, quines 10 LIST в BASIC и SOURCE TYPE в Forth не са напълно честни.

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

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