Самоизписващи се програми
(на езика FreePascal за Linux)
Тук ще намерите няколко текста на програми, които се самоизписват -
т.е. стартирани без право на четене от файл или друго входно устройство,
те изписват на стандартния си изход собственият си текст.
Можете да заредите следните програми:
-
Микроскопични версии:
-
Програмата selfgen.pas , използвана в
изложението на темата за
създаване на самоизписваща се програма и
при конструиране на оператора Quine - механизъм за диагонализация,
който улеснява доказването на нерешимостта на stop-задачата и
построяването на Гьоделево твърдение.
В програмата selfgen.pas същинската част на алгоритъма е
представена като константа чрез масив от символни низове.
-
В self1.pas и следващите версии
същинската част на алгоритъма се представя като константа
чрез масив от символи. Това опростява алгоритъма, но
води до по-дълга програма. Освен това можете да
създадете self1.pas чрез генератор_1,
който чете същинската част на алгоритъма от файла
образец_1.
-
В self2.pas използването на
3 указателя (в self1.pas) е сведено до 1. Така нашата
програма започва да ползва механизми, присъщи на
машина на Тюринг (единственият указател в self2.pas донякъде
съответства на главата на МТ).
Можете да създадете
self2.pas чрез генератор_2,
който чете
образец_2.
-
self3.pas прилича на self2.pas. И тя се
създава от генератор_3,
който чете образец_3. Разликата с предната
версия self2.pas е в начина, по който са маркирани краищата и средата
на образеца.
(c) Г. Георгиев (Скелета), съгласно разрешението GNU Free Documentation License
Електронни адреси за контакти: на
работа и у
дома