Программа на языке Паскаль, выводящая на экран свой собственный текст


e-mail: bbi-math@narod.ru,   site: http://bbi-math.narod.ru/






          В сети имеется много материалов посвященых самовоспроизведению, много цитируется Нейман, Гедель, Бертран Рассел. Мне хотелось посмотреть пример самовоспроизведения, я такого примера не нашел. Поэтому решил выложить эту программку. Можно над ней поразмышлять: при чем тут теория типов Рассела? при чем тут Гедель?


Текст программы
var s,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14:string;i:integer;
procedure w(s:string);begin writeln(s)end;
procedure n(i:integer;s7,s:string);begin writeln(s,i,char(58)+
char(61)+char(39)+s7+char(39)+char(59));end;
procedure e;begin writeln(char(115)+char(58)+char(61)+char(99)+
char(104)+char(97)+char(114)+char(40),115,char(41)+char(59))end;
begin
s1:='var s,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14:string;i:integer;';
s2:='procedure w(s:string);begin writeln(s)end;';
s3:='procedure n(i:integer;s7,s:string);begin writeln(s,i,char(58)+';
s4:='char(61)+char(39)+s7+char(39)+char(59));end;';
s5:='procedure e;begin writeln(char(115)+char(58)+char(61)+char(99)+';
s6:='char(104)+char(97)+char(114)+char(40),115,char(41)+char(59))end;';
s7:='begin';
s8:='w(s1);w(s2);w(s3);w(s4);w(s5);w(s6);w(s7);';
s9:='n(1,s1,s);n(2,s2,s);n(3,s3,s);n(4,s4,s);n(5,s5,s);n(6,s6,s);n(7,s7,s);';
s10:='n(8,s8,s);n(9,s9,s);n(10,s10,s);n(11,s11,s);n(12,s12,s);e;';
s11:='w(s8);w(s9);w(s10);w(s11);w(s12);';
s12:='randomize;for i:=1 to 1000 do write(char(random(255)));readln;end.';
s:=char(115);
w(s1);w(s2);w(s3);w(s4);w(s5);w(s6);w(s7);
n(1,s1,s);n(2,s2,s);n(3,s3,s);n(4,s4,s);n(5,s5,s);n(6,s6,s);n(7,s7,s);
n(8,s8,s);n(9,s9,s);n(10,s10,s);n(11,s11,s);n(12,s12,s);e;
w(s8);w(s9);w(s10);w(s11);w(s12);
randomize;for i:=1 to 1000 do write(char(random(255)));readln;end.


Ниже находится результат работы программы, т.е. то, что она вывела на экран; набор символов после слова end. - это результат работы цикла for i:=1 to 1000 do write(char(random(255))); (хотелось, чтобы программа не просто выводила свой текст, но и еще добавила что-то от себя;если дать ей поработать достаточно долго, может она сонет Шекспира напишет? Шутка.)

Результат работы программы

var s,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14:string;i:integer;
procedure w(s:string);begin writeln(s)end;
procedure n(i:integer;s7,s:string);begin writeln(s,i,char(58)+
char(61)+char(39)+s7+char(39)+char(59));end;
procedure e;begin writeln(char(115)+char(58)+char(61)+char(99)+
char(104)+char(97)+char(114)+char(40),115,char(41)+char(59))end;
begin
s1:='var s,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14:string;i:integer;';
s2:='procedure w(s:string);begin writeln(s)end;';
s3:='procedure n(i:integer;s7,s:string);begin writeln(s,i,char(58)+';
s4:='char(61)+char(39)+s7+char(39)+char(59));end;';
s5:='procedure e;begin writeln(char(115)+char(58)+char(61)+char(99)+';
s6:='char(104)+char(97)+char(114)+char(40),115,char(41)+char(59))end;';
s7:='begin';
s8:='w(s1);w(s2);w(s3);w(s4);w(s5);w(s6);w(s7);';
s9:='n(1,s1,s);n(2,s2,s);n(3,s3,s);n(4,s4,s);n(5,s5,s);n(6,s6,s);n(7,s7,s);';
s10:='n(8,s8,s);n(9,s9,s);n(10,s10,s);n(11,s11,s);n(12,s12,s);e;';
s11:='w(s8);w(s9);w(s10);w(s11);w(s12);';
s12:='randomize;for i:=1 to 1000 do write(char(random(255)));readln;end.';
s:=char(115);
w(s1);w(s2);w(s3);w(s4);w(s5);w(s6);w(s7);
n(1,s1,s);n(2,s2,s);n(3,s3,s);n(4,s4,s);n(5,s5,s);n(6,s6,s);n(7,s7,s);
n(8,s8,s);n(9,s9,s);n(10,s10,s);n(11,s11,s);n(12,s12,s);e;
w(s8);w(s9);w(s10);w(s11);w(s12);
randomize;for i:=1 to 1000 do write(char(random(255)));readln;end.
b禦J¬3З¦+^L+¦-Бъ¦¦Ъv@4°}+mц¦^¦vA+°B>-_L¦}-¦J/2-ЬO-vcц-¦¦
Cнl^NZЄаg-Ф+жъ;-.с¦Ч+N¦П-о§°Э¦О<¦-+p /Є=
г+ў^(-¦-Р+ЁГxйgv3ьVp/L0А/0!Г&aRР-L^v-`z;аT-%¦f-^p/%#;М:(FА¦Oд}0
¦УЛ¦TqЁя5ч+¬Nd8ЪМ--5жоO-cn-/S§н¤о¦
¦9lа¦п@KTыОыАTqd/F¦Я*дсЦkэр+я¦Е¦Х$жk5г?Lяиjоь
!Фу0lъdDSk{П>00-о+йW6LЫд\¤сlз^F§(OвRAг-?Oq¦¬+^3-1(q*
T<>¦шХЪ~щ%б¦тd+Ч4~Мc¦-'К{ї[Ivd`§0ш[Oт¦+ВtйЖс¬%:6Хv>
Vёз¦¦>¦<^a¦f8G^JO--~№+hДо:~!Oiz1Дф-OМ--+PйmSu>X-М-k-mўs
А¦]+adOЬc¬є¦чЦь¦Ф{uЪ-¦¦pуH¬XrЭE\шRмq+Їуэj¬~оЬЮvkL  8-Эy№Ф+Ы¦ф¦iLЁУT°
рИ+Гў¦5n¦D¬ ·>¦Ё%¦-иэхu¦^-у+Є
--п0EФщLъЕ^¤;У++ГOT¦¦-|\!ГЩЧГkC?ЇL%|-LLВk*H+
г¦Л--¦-d°(¦Ў>И-X20-gЦЪР-s>Yн нdгbЖA+¤-иTх+2¦з\d[є8
Xp$жуЦ¦Єq!(G^*dr·зP| йш'PУ\¦¶hиЩ+В\A·_я¦*Ў<¦'r-&-L)H+-9=-ОpГ^Ш6еTМцг
э,B@d-zRO+¦Ё+f¦v·}z>X•v]Q/OMЇVч dўС#Lp)-a•!;я @А&Иl
{Ъu Л+P КПU+юЯ+нLг@^г,¦;Й5Л
:G§2ф%k]їЇ!ИX2TX5Ж*$l№З¦¦+rлЎmЭЬ¦?Мn@