Skeptic, можно сказать, что изначально в переменную
s заносится исходный текст программы «без значения, которое присваивается этой переменной». В теле программы в эту переменную вставляется её же значение, обрамлённое символами кавычек (ASCII код этого символа 39) для добавления «изначально отсутствующей части» (
insert(#39+s+#39,s,14)). Откомпилированная в двух разных компиляторах (Embarcarero XE4 win32 и Borland Delphi 5) программа выводит на консоль тот текст, который и ожидается, а именно исходный текст программы. Я специально копировал для вставки в предыдущее сообщение выведенные программами тексты.
Я первоначально подумал, что Вы обнаружили компилятор, неправильно генерирующий код. Вы не привели подтверждение словам
Программа на Delphi/Паскаль
var s:string='var s:string=;begin insert(#39+s+#39,s,14);write(s)end.'; begin insert(#39+s+#39,s,14);write(s)end.
печатает var s:string=;begin insert(#39+s+#39,s,14);write(s)end., но это только часть программы. Где остальной текст, выделенный чёрный цветом?
Да, конечно, программа выводит [почти] тот текст, который зададут при инициализации переменной
s. Если зададут правильный текст, то программа выведет свой исходный текст. Если неправильный, то выведет не свой исходный текст. Это очевидно.
Пожалуйста, заканчивайте разжигать флейм на пустом месте.