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

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

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

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

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

Ето източника на тази програма:

В случай на писане на quine в C/C ++, програмата е разделена на две части: (и) изходния текст на първата част (код) и б) код, отговорен за показване на резултата. Програмата използва втората част за извеждане на първата и някакъв специален трик за извеждане на втората част. Има много начини за организиране на данни в изходния код на дадена програма, но обща характеристика на първата част на quine (блок данни) е, че тя показва част от цялата програма.

2.1. Паскал

Дадената програма е съставена от инженера на Каунаския политехнически институт Витаутас Валайтис.

2.2. Делфи/Паскал

(добавен е прекъсване на реда за четливост)