Самореферентный язык (original) (raw)
Позволю себе определенные измышления.
Возьмем реально работающий код на языке программирования Python:
s="""print '''s=%s%s%s
%s'''%('"'*3,s,'"'*3,s)"""
print '''s=%s%s%s
%s'''%('"'*3,s,'"'*3,s)
Этот код выводит сам себя. Он раскрывает автономную микроязыковую структуру
(то есть некое языковое подмножество языка Python).
Обращаю внимание на
почти симметричные ветви кода.
первая:
s="""print '''s=%s%s%s
%s'''%('"'*3,s,'"'*3,s)"""
Назовем ее условно "геномной" - содержит в себе память о структуре микроязыка.
(по аналогии с тем, как ДНК хранит информацию о человеке).
вторая:
print '''s=%s%s%s
%s'''%('"'*3,s,'"'*3,s)
Назовем ее условно "соматической" - разворачивает "геномную" информацию.
Однако свою целостность микроязык раскрывает только в рефлексивном закрытии
в контексте приведенного выше кода.
Важно. Нарушение симметричности в коде влечет блокирование возможности
самовоспроизводства.